Невозможно создать экземпляры классов appComponentFactory и multidex - PullRequest
0 голосов
/ 07 марта 2020

Код компилируется без каких-либо проблем и смог построить APK. Но когда я пытаюсь запустить APK на устройстве, он вылетает со следующим журналом.

2020-03-07 12:46:42.571 25473-25473/com.package E/LoadedApk: Unable to instantiate appComponentFactory
java.lang.ClassNotFoundException: Didn't find class "androidx.core.app.CoreComponentFactory" on path: DexPathList[[zip file "/data/app/com.package-Qz3B6TePYQxnRt-qDjb34A==/base.apk"],nativeLibraryDirectories=[/data/app/com.fortunemirror-Qz3B6TePYQxnRt-qDjb34A==/lib/arm64, /data/app/com.package-Qz3B6TePYQxnRt-qDjb34A==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
    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.createOrUpdateClassLoaderLocked(LoadedApk.java:855)
    at android.app.LoadedApk.getClassLoader(LoadedApk.java:950)
    at android.app.LoadedApk.getResources(LoadedApk.java:1188)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2499)
    at android.app.ContextImpl.createAppContext(ContextImpl.java:2491)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6497)
    at android.app.ActivityThread.access$1600(ActivityThread.java:231)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1952)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7682)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
    Suppressed: java.io.IOException: Failed to open dex files from /data/app/com.package-Qz3B6TePYQxnRt-qDjb34A==/base.apk because: Failure to verify dex file '/data/app/com.package-Qz3B6TePYQxnRt-qDjb34A==/base.apk': Duplicate interface: 'Lio/realm/PalmDataRealmProxyInterface;'
    at dalvik.system.DexFile.openDexFileNative(Native Method)
    at dalvik.system.DexFile.openDexFile(DexFile.java:365)
    at dalvik.system.DexFile.<init>(DexFile.java:107)
    at dalvik.system.DexFile.<init>(DexFile.java:80)
    at dalvik.system.DexPathList.loadDexFile(DexPathList.java:444)
    at dalvik.system.DexPathList.makeDexElements(DexPathList.java:403)
    at dalvik.system.DexPathList.<init>(DexPathList.java:164)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:126)
    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:101)
    at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:74)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:87)
    at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:116)
    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:114)
    at android.app.ApplicationLoaders.getClassLoaderWithSharedLibraries(ApplicationLoaders.java:60)
    at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:851)

В проекте включена мультидекс, также добавлена ​​мультидексная зависимость.

Kotlin версия : 1.3.50

Я не уверен, почему он показывает Duplicate interface: 'Lio/realm/PalmDataRealmProxyInterface;'

Редактировать:

Я также добавил мультидекс игнорировать файл со следующим

-keep class com.package.** { *; } -keep class androidx.** { *; }

также в добавленных типах сборки multiDexKeepProguard file('multidex.pro')

** ОБНОВЛЕНИЕ: **

Поэтому я попытался полностью удалите область из проекта, и тогда я больше не получаю эти ошибки. Таким образом, подтверждается, что плагин Realm Gradle дает эту проблему.

...