ClassNotFoundException on android devices pre lollipop after update Android Studio, gradle and language level

别等时光非礼了梦想. 提交于 2019-12-12 00:50:58

问题


After updating Android Studio to 2.2.3, gradle to 2.2.3, and language level to 1_8 an exception occurs:

  E/AndroidRuntime: FATAL EXCEPTION: main
                                             Process: com.example.myapp, PID: 3467
                                             java.lang.RuntimeException: Unable to instantiate application com.example.myapp.MyApp: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MyApp" on path: DexPathList[[zip file "/data/app/com.example.myapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.myapp-1, /system/lib]]
                                                 at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
                                                 at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317)
                                                 at android.app.ActivityThread.access$1500(ActivityThread.java:135)
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
                                                 at android.os.Handler.dispatchMessage(Handler.java:102)
                                                 at android.os.Looper.loop(Looper.java:136)
                                                 at android.app.ActivityThread.main(ActivityThread.java:5017)
                                                 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:779)
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                 at dalvik.system.NativeStart.main(Native Method)
                                              Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myapp.MyApp" on path: DexPathList[[zip file "/data/app/com.example.myapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.myapp-1, /system/lib]]
                                                 at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                 at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
                                                 at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
                                                 at android.app.Instrumentation.newApplication(Instrumentation.java:975)
                                                 at android.app.LoadedApk.makeApplication(LoadedApk.java:511)
                                                 at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4317) 
                                                 at android.app.ActivityThread.access$1500(ActivityThread.java:135) 
                                                 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
                                                 at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                 at android.os.Looper.loop(Looper.java:136) 
                                                 at android.app.ActivityThread.main(ActivityThread.java:5017) 
                                                 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:779) 
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                                                 at dalvik.system.NativeStart.main(Native Method) 

Application class in manifest:

    ...
    <application
    android:name="com.example.myapp.MyApp"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@drawable/ic_launcher"
    android:installLocation="auto"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppBaseTheme">
    ...

Gradle:

compileSdkVersion 25
buildToolsVersion "25.0.2"

defaultConfig {
    multiDexEnabled = true
    applicationId "com.example.myapp"
    minSdkVersion 16
    targetSdkVersion 25
    versionCode 0
    versionName "1"

    generatedDensities = []

    jackOptions {
        enabled true
        additionalParameters = ["jack.incremental": "true"]
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    incremental false

}


dexOptions {
    javaMaxHeapSize "4g"
    dexInProcess true

}

MyApp class exist:

  public class MyApp extends MultiDexApplication {
  ....

This exception occurs only on devices pre lollipop

来源:https://stackoverflow.com/questions/42481456/classnotfoundexception-on-android-devices-pre-lollipop-after-update-android-stud

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!