2017-01-26 3 views
0

Meine App hat bis vor kurzem gut funktioniert. Dann habe ich compileSdk und buildTools auf 25 aktualisiert. Seitdem stürzt meine App sofort beim Öffnen ab. Die Einstellung von minSdkVersion auf 18 löst das Problem, aber wenn ich es auf 21 zurückziehe, passiert das. Anbringen Stack-Trace und Teile meiner gradle DateiApp startet nicht mit minSdk 21

01-25 19:07:59.848 18879-18879/com.vimi.vimichat E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.vimi.vimichat, PID: 18879 
    java.lang.RuntimeException: Unable to instantiate application com.vimi.vimichat.Common: java.lang.ClassNotFoundException: Didn't find class "com.vimi.vimichat.Common" on path: DexPathList[[zip file "/data/app/com.vimi.vimichat-1/base.apk"],nativeLibraryDirectories=[/data/app/com.vimi.vimichat-1/lib/arm64, /vendor/lib64, /system/lib64]] 
     at android.app.LoadedApk.makeApplication(LoadedApk.java:586) 
     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5041) 
     at android.app.ActivityThread.access$1500(ActivityThread.java:187) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1643) 
     at android.os.Handler.dispatchMessage(Handler.java:111) 
     at android.os.Looper.loop(Looper.java:194) 
     at android.app.ActivityThread.main(ActivityThread.java:5844) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1109) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.vimi.vimichat.Common" on path: DexPathList[[zip file "/data/app/com.vimi.vimichat-1/base.apk"],nativeLibraryDirectories=[/data/app/com.vimi.vimichat-1/lib/arm64, /vendor/lib64, /system/lib64]] 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
     at android.app.Instrumentation.newApplication(Instrumentation.java:988) 
     at android.app.LoadedApk.makeApplication(LoadedApk.java:581) 
     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5041)  
     at android.app.ActivityThread.access$1500(ActivityThread.java:187)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1643)  
     at android.os.Handler.dispatchMessage(Handler.java:111)  
     at android.os.Looper.loop(Looper.java:194)  
     at android.app.ActivityThread.main(ActivityThread.java:5844)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:372)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1109)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:875)  
    Suppressed: java.lang.ClassNotFoundException: com.vimi.vimichat.Common 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
     at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
      ... 13 more 
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

Teile meines Projekts Anbringen gradle Datei

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 



repositories { 

    mavenCentral() 

} 
android { 
    compileSdkVersion 25 
    buildToolsVersion '25.0.2' 
    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
    } 
    defaultConfig { 

     minSdkVersion 21 
     targetSdkVersion 21 
     renderscriptTargetApi 19 
     renderscriptSupportModeEnabled true 
     // Enabling multidex support. 
     multiDexEnabled true 
    } 



    dexOptions { 
     javaMaxHeapSize "4g" 
     jumboMode = true 
    } 

    useLibrary 'org.apache.http.legacy' 

} 

ich diese Stack-Trace erros oft hier gesehen, aber keine klare Antwort auf das, was ist das Problem .

Ich habe versucht, zu reinigen und neu zu erstellen, Android Studio-Caches zu löschen, Gradle-Version und Plugin zu aktualisieren. Nichts scheint für mich zu funktionieren.

EDIT 1

Es scheint, wie das Problem in einer oder mehreren der Android-Support-Bibliotheken

compile 'com.android.support:appcompat-v7:25.1.0' 
compile 'com.android.support:support-v4:25.1.0' 
compile 'com.android.support:cardview-v7:25.1.0' 
compile 'com.android.support:recyclerview-v7:25.1.0' 

alle von ihnen 24.1.0 Zurücksetzen setzt scheint das Problem zu beheben. Allerdings verwende ich einige der Funktionen in späteren Versionen von ihnen, so dass es nicht hilft.

+0

Verwenden Sie zufällige native Bibliotheken? Ich ging zurück mit compileSdkVersion 24 zu kompilieren, um eine Vielzahl von zufälligen Fehlern zu lösen. – Ewald

+0

Welches Gerät laufen Sie? Welche API-Version? –

+0

Mehrere Geräte und API-Ebenen. Emulatoren, Meizu m3s, SG Note 5, Android 5.1 und 6 – amitfr

Antwort

0

Ich hatte das gleiche Problem. Ich habe das Problem gelöst, indem ich zwei Dinge getan habe.

  1. Fügen Sie Folgendes zur Datei build.gradle der App hinzu.

android { ... dexOptions { preDexLibraries false } } Für mich abgestürzt es wegen eines ClassNotFoundException in Bezug auf die RxJava2 BehaviourSubject, so predex Deaktivierung für Bibliotheken beschlossen.

  1. Deaktivieren Sie Instant Run aus dem Projekt. Deaktivieren Sie Settings -> Build, Execute, Deployment -> Instant Run -> Enable Instant Run