2016-04-27 6 views
2

Wenn ich meine App direkt kompiliere, funktioniert es auf allen Geräten. Aber wenn ich einen Build durch Stoff und installieren Sie meinen App aus dem Stoffe Beta App ich diesen Absturz bekam gleich nach meiner app starten:java.lang.NoClassDefFoundError nach der Installation der App von Fabric Beta

java.lang.NoClassDefFoundError: com.android.tools.fd.runtime.AppInfo 
    at com.android.tools.fd.runtime.BootstrapApplication.attachBaseContext(BootstrapApplication.java:229) 
    at android.app.Application.attach(Application.java:201) 
    at android.app.Instrumentation.newApplication(Instrumentation.java:998) 
    at android.app.Instrumentation.newApplication(Instrumentation.java:982) 
    at android.app.LoadedApk.makeApplication(LoadedApk.java:502) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4720) 
    at android.app.ActivityThread.access$1500(ActivityThread.java:166) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1343) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:136) 
    at android.app.ActivityThread.main(ActivityThread.java:5584) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
    at dalvik.system.NativeStart.main(Native Method) 

Dies tritt nur auf Geräte-Version 4.4 und niedriger. Ich hatte auch Probleme im Zusammenhang mit this. Glaubst du, der Unfall, den ich bekommen habe, ist verwandt?

das ist mein Projekt build.gradle:

buildscript { 
    repositories { 
     jcenter() 
     maven { url 'https://maven.fabric.io/public' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.0.0' 
     classpath 'io.fabric.tools:gradle:1.+' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

und dies ist meine App build.gradle:

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 
... 
buildscript { 
    repositories { 
     jcenter() 
     mavenCentral() 
     maven { url 'https://maven.fabric.io/public' } 
    } 
    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 

repositories { 
    mavenCentral() 
    maven { url 'https://maven.fabric.io/public' } 
} 

Antwort

8

Wenn Sie Android Studio Version 2.0 oder höher verwenden, dann sollten Sie sofort laufen & try deaktivieren wieder aufzubauen.

Instant Run versucht, Hot-Swapping Ihres Codes durchzuführen; Dies bewirkt, dass die Anwendungsklasse verschoben wird.

Um Instant-Run Zum Datei> Einstellungen> Build, Ausführung, Deployment> Instant Run> Deaktivieren Sie die Option "Enable Instant run"

+0

Arbeitete für mich :) – LeonardoSibela

+0

Ich verstehe nicht, wie das mit der Frage zu tun hat. –

+0

Hallo, @EthanHolshouser Instant-Run war zu dieser Zeit etwas fehlerhaft und Build erzeugte keine inkrementellen Builds. Es ist eigentlich ein gutes Werkzeug, um eine Entwicklungszeit zu sparen. Weitere Informationen zu Sofortausführungen finden Sie hier: https://medium.com/google-developers/instant-run-how-does-it-work-294a1633367f – NAUSHAD

0

NoClassDefFoundError - in der Regel ist es Fragen im Zusammenhang mit multidex. Überprüfen Sie diese Antwort: Multidex

+0

Soll ich diese Fehler deaktivieren, wenn ich die App direkt auf diesem Telefon kompilieren und ausführen? – tufekoi

+0

@Tuff Ich bin mir nicht sicher, vielleicht Fabric Build fügen Sie einige Code (Bibliotheken) und damit überschreiten Sie 64k Limit. Sie können versuchen, das Skript dex-method-count für beide apk-Dateien auszuführen und die Ergebnisse zu vergleichen. Wie auch immer, ich würde versuchen, oben zu beheben, es dauert nur 2 Minuten, um Ihren Code mit Multidex anzupassen. – 3mpty

+0

Ja, ich habe es getan, aber die App stürzt immer noch – tufekoi