[英]Unable to instantiate application android.support.multidex.MultiDexApplication: java.lang.ClassNotFoundException: on path: DexPathList
[英]MultiDex application: java.lang.ClassNotFoundException when a library is enabled
我正在使用Android Studio 3.1.2
和Gradle 3.1.2
& minSdkVersion 19
和compileSdkVersion 26
並在運行Nougat
模擬器和運行Oreo
智能手機上進行測試,並在啟動應用程序后得到此異常
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.***.***.****, PID: 16366
java.lang.RuntimeException: Unable to instantiate application com.***.***.***.view.application.MyApplicationClass: java.lang.ClassNotFoundException: Didn't find class "com.***.***.***.view.application.MyApplicationClass" on path: DexPathList[[zip file "/data/app/com.***.***.***-2/base.apk"],nativeLibraryDirectories=[/data/app/com.***.***.***-2/lib/x86, /data/app/com.***.***.***-2/base.apk!/lib/x86, /system/lib, /vendor/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:802)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5377)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.***.***.***.view.application.MyApplicationClass" on path: DexPathList[[zip file "/data/app/com.***.***.***-2/base.apk"],nativeLibraryDirectories=[/data/app/com.***.***.***-2/lib/x86, /data/app/com.***.***.***-2/base.apk!/lib/x86, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.Instrumentation.newApplication(Instrumentation.java:992)
at android.app.LoadedApk.makeApplication(LoadedApk.java:796)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5377)
at android.app.ActivityThread.-wrap2(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1545)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
MyApplicationClass
擴展了MultiDexApplication
android:name=".view.application.MyApplicationClass"
注冊該類 multiDexEnabled true
在gradle.build
啟用MultiDex compile 'com.android.support:multidex:1.0.2'
以獲得向后兼容性 當我使用apply plugin: 'com.soasta.mpulse.android'
啟用此庫時 apply plugin: 'com.soasta.mpulse.android'
將發生異常, 否則該應用程序將正常運行 。
我嘗試了許多解決方案,但沒有一個起作用:
嘗試修復此問題已有2天了,我們將不勝感激
我發現解決方案是將android:name =“ android.support.multidex.MultiDexApplication”添加到AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
</manifest>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.