RuntimeException: невозможно создать экземпляр приложения com.company.app.Application: ClassNotFoundException

Я прочитал несколько ответов на этом сайте с такими же или похожими сообщениями об ошибках, и я уже пробовал все решения. К сожалению, пока ни один из них не сработал.

Все мои файлы gradle выглядят так, как будто они правильно настроены для Multidex, класса Applicationextends MultiDexApplication и правильно указаны в манифесте, я очистил все кеши и перезапустил IDE, удалив сборки из проекта и устройства и заново построив / переустановка и тд и тп.

Проверяя APK, я нашел Application в classes2.dex, правильно ссылаясь на .super Landroidx/multidex/MultiDexApplication;

Стек, который я получаю, выглядит так:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.<REDACTED>, PID: 25475
    java.lang.RuntimeException: Unable to instantiate application com.<REDACTED>.Application: java.lang.ClassNotFoundException: Didn't find class "com.<REDACTED>.Application" on path: DexPathList[[zip file "/data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/base.apk"],nativeLibraryDirectories=[/data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1306)
        at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7401)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7374)
        at android.app.ActivityThread.access$1500(ActivityThread.java:301)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2118)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8425)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.<REDACTED>.Application" on path: DexPathList[[zip file "/data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/base.apk"],nativeLibraryDirectories=[/data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.app.AppComponentFactory.instantiateApplication(AppComponentFactory.java:76)
        at android.app.Instrumentation.newApplication(Instrumentation.java:1158)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:1298)
        at android.app.ActivityThread.handleMakeApplication(ActivityThread.java:7401) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7374) 
        at android.app.ActivityThread.access$1500(ActivityThread.java:301) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2118) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:246) 
        at android.app.ActivityThread.main(ActivityThread.java:8425) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:596) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) 
        Suppressed: java.io.IOException: Failed to open dex files from /data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/base.apk because: Failure to verify dex file '/data/app/~~b-NK-x066lFdY_bh0tm6ew==/com.<REDACTED>-V2WCXZvYqUZRGKbFMfmgFg==/base.apk': Bad index for method_handle_item method_idx: ffff >= de57
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:367)
        at dalvik.system.DexFile.<init>(DexFile.java:109)
        at dalvik.system.DexFile.<init>(DexFile.java:82)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:439)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:398)
        at dalvik.system.DexPathList.<init>(DexPathList.java:166)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:129)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:104)
        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:933)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:990)
        at android.app.LoadedApk.getResources(LoadedApk.java:1234)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2788)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2780)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7263)
                ... 8 more

Кто-нибудь может понять, в чем дело?

Что-то вроде испортилось с файлом DEX. Если вы выполните полную очистку и перестройку проекта, проблема не исчезнет?

CommonsWare 07.04.2021 21:24

Да. @CommonsWare. Я добавлю это к вопросу

Ben Leggiero 07.04.2021 22:02

У вас есть buildToolsVersion, указанный для этого модуля в build.gradle? Если да, актуально ли оно? Точно так же актуальна ли ваша версия плагина Android Gradle? Похоже, что инструменты сборки что-то не так, хотя я не вижу этой конкретной проблемы в системе отслеживания проблем.

CommonsWare 07.04.2021 22:08

@CommonsWare: да, он установлен на 29.0.3, как и файл Gradle на уровне проекта. Я использую Android Gradle 4.1.3

Ben Leggiero 07.04.2021 22:28

«он установлен на 29.0.3, такой же, как файл Gradle на уровне проекта» - это немного старше. Вы пробовали использовать что-то новенькое? Или полностью удалить buildToolsVersion и позволить плагину решать, какую версию использовать?

CommonsWare 07.04.2021 23:01

Спасибо за помощь, @CommonsWare! Все эти идеи были очень конкретными и хорошими. Оказывается, это было что-то о Crashlytics, которое обнаружил мой товарищ по команде. Я добавил это как ответ

Ben Leggiero 08.04.2021 01:48
1
6
23
1

Ответы 1

В уровень модуляbuild.gradle мы добавили эти строки:

// Near the top
apply plugin: 'com.google.firebase.crashlytics'

// ... 

android {

    // ...

    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
    
    // ...
}

// ...

Я понятия не имею, как это устранило этот сбой, но полагаю, что это то, что я получаю за использование библиотек «Это просто работает».

Другие вопросы по теме