I’m encountering a NoClassDefFoundError related to androidx.lifecycle.ReportFragment$ActivityInitializationListener in my Android application, resulting in a fatal exception that causes the app to crash immediately upon launch. Here is the full stack trace:
Process: com.company.travelapp, PID: 22365
java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at android.app.ActivityThread.installProvider(ActivityThread.java:7642)
…
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Caused by: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
…
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:37)
…
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ReportFragment$ActivityInitializationListener" on path: DexPathList[[zip file "/data/app/~~ohF60lMUCczmAb5rmHzgvw==/com.company.travelapp-g88i1O-Z7OUyKk4cvThJVA==/base.apk"],nativeLibraryDirectories=[/data/app/~~ohF60lMUCczmAb5rmHzgvw==/com.company.travelapp-g88i1O-Z7OUyKk4cvThJVA==/lib/arm64, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
…
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
Steps I’ve Tried
-
Updated Dependencies: Ensured all lifecycle and startup dependencies are up-to-date in
build.gradle
. -
Cleaned and Rebuilt Project: Performed clean and rebuild steps in Android Studio.
-
Checked ProGuard Rules: Added rules to keep all necessary classes.
-
Cleared Gradle Cache: Removed the Gradle cache to resolve any potential corruption issues.
-
Manually Verified Class: Attempted to verify the presence of the class in the JAR files.
build.gradle
(app level) Configuration
dependencies {
implementation 'androidx.lifecycle:lifecycle-runtime:2.4.0'
implementation 'androidx.lifecycle:lifecycle-process:2.4.0'
implementation 'androidx.startup:startup-runtime:1.1.0'
}
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
}
}
ProGuard Rules
-keep class androidx.lifecycle.** { *; }
-keep class androidx.startup.** { *; }
James Mbui Gitonga is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.