小编Erw*_*n A的帖子

E/LoadedApk:无法仅在 Android Q (API 29) 上实例化 appComponentFactory

我已经到处搜索了这个问题,但仍然没有解决方案。

gradle 有 minSdkVersion 21 和 targetSdkVersion 29

我只在 API 29 中遇到错误,然后应用程序无法加载并显示空白屏幕。当我看到 logcat 它给出了这样的错误:

E/LoadedApk: Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[],nativeLibraryDirectories=[/data/app/com.packagename.appname-BxS7Zs-h0IWwJAVhbjx7aQ==/lib/x86, /data/app/com.packagename.appname-BxS7Zs-h0IWwJAVhbjx7aQ==/base.apk!/lib/x86, /system/lib, /system/product/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.LoadedApk.createAppFactory(LoadedApk.java:256)
    at android.app.LoadedApk.updateApplicationInfo(LoadedApk.java:370)
    at android.app.ActivityThread.handleDispatchPackageBroadcast(ActivityThread.java:5951)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1941)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at com.android.server.SystemServer.run(SystemServer.java:541)
    at com.android.server.SystemServer.main(SystemServer.java:349)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:908)
Run Code Online (Sandbox Code Playgroud)

我认为它似乎来自 multidex,然后我尝试将以下代码添加到 gradle app

multiDexKeepFile 文件('multidex-config.txt')

multiDexKeepProguard 文件('multidex-config.pro')

我的 multidex-config.txt

com/packagename/appname/androidx.class
Run Code Online (Sandbox Code Playgroud)

我的 multidex-config.pro

-keep class androidx.core.app.CoreComponentFactory { *; }
Run Code Online (Sandbox Code Playgroud)

我的 App …

android gradle android-studio android-multidex

9
推荐指数
1
解决办法
1万
查看次数