Не удалось получить поставщика androidx.lifecycle.ProcessLifecycleOwnerInitializr

Ошибка при запуске приложения с зависимостями 'androidx.lifecycle:lifecycle-extensions:2.1.0-alpha03' и 'androidx.lifecycle:lifecycle-viewmodel:2.1.0-alpha03' на устройстве с Android 4.4.

Отлично работает на устройстве с Android 6

Приложение вылетает с ошибкой

java.lang.RuntimeException: Unable to get provider androidx.lifecycle.ProcessLifecycleOwnerInitializer: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/***********, /vendor/lib, /system/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:5052)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4623)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4563)
    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
    at android.os.Handler.dispatchMessage(Handler.java:110)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5333)
    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:824)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
    at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ProcessLifecycleOwnerInitializer" on path: DexPathList[[zip file "/data/app/**********.apk"],nativeLibraryDirectories=[/data/app-lib/********, /vendor/lib, /system/lib]]

person Ajay Simiyon    schedule 15.03.2019    source источник
comment
В моем случае я провел тест производительности Android Studio между Windows и Linux, когда я вернулся к Windows после тестов производительности Android Studio в Linux, я получил эту ошибку, поэтому я просто очистил проект и перестроил его, и он отлично работал   -  person Vikas Kandari    schedule 24.03.2020


Ответы (5)


Спасибо Эндрюсу Алвесу.

Из сообщения

Это была проблема Декса. в андроиде 4.4

1 - в приложении gradle внутри defaultConfig включить multidex

defaultConfig{
  ....
  multiDexEnabled true
}

2 - для поддержки мультидекса в других версиях добавьте эту зависимость в градиент вашего приложения.

implementation 'com.android.support:multidex:1.0.3' 

3 - если у вас есть класс, который расширяет приложение, сделайте так, чтобы он расширялся

MultiDexПриложение

если вы этого не сделаете, добавьте это в свой файл манифеста внутри тега приложения.

android:name="android.support.multidex.MultiDexApplication" 

Кроме того, если вы создали новое приложение, не забудьте добавить следующее в ваш app/build.gradle

android {
    defaultConfig {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Это оно. работал на меня

person Ajay Simiyon    schedule 15.03.2019
comment
В результате этих изменений открытие приложения замедлилось. Интересно, почему. - person snorlax; 17.08.2020

В моем случае файлы жизненного цикла архитектуры Android каким-то образом пропускаются с пакетом Android на Pie (Android9). Итак, что я сделал, так это добавил оператор keep для того же в proguard-rules.pro.

Для AndroidX:

-keep class androidx.lifecycle.** {*;}

Для поддержки :

-keep class android.arch.lifecycle.** {*;}
person VishnuPrajapati    schedule 04.10.2019

Для kotlin добавьте это в свой gradle:

kotlinOptions {
        jvmTarget = '1.8'
}
compileOptions {
        targetCompatibility = "8"
        sourceCompatibility = "8"
}
person Ouail Bellal    schedule 17.05.2020

Вы можете найти официальные документы о Multidex здесь. Используйте эту ссылку, чтобы проверить последнюю версию зависимости multidex gradle.

если вы используете AndroidX

dependencies {
    def multidex_version = "2.0.1" // Check this from the link
    implementation 'androidx.multidex:multidex:$multidex_version'
}

в противном случае используйте

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}
person shakram02    schedule 24.08.2019

Для меня ничего из вышеперечисленного не работало. Также перезапуск и аннулирование ничего не сделали. После удаления приложения и команды «Сборка» > «Очистить проект» все заработало, как и ожидалось.

person Hatzen    schedule 19.10.2020