问题
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