Bug P2
Status Update
Comments
ow...@google.com <ow...@google.com> #2
Do you have a sample project that reproduces this issue that you can attach / link here?
ra...@google.com <ra...@google.com> #3
I can't upload it publicly, but I can share it privately. Where should I send it to?
ow...@google.com <ow...@google.com> #4
I faced a familiar issue and found out that the reason is compatibility with AGP7.
Is it possible to address this compatibility issue?
It is important to make the androidx.lifecycle library version 2.8 compatible with AGP 7. We share our library as a dependency, and some of our clients may use AGP 7. In the scope of this issue, it blocks project improvements.
Thank you.
Is it possible to address this compatibility issue?
It is important to make the androidx.lifecycle library version 2.8 compatible with AGP 7. We share our library as a dependency, and some of our clients may use AGP 7. In the scope of this issue, it blocks project improvements.
Thank you.
da...@google.com <da...@google.com> #5
Ideally, an isolated sample project would be the best option. If that's really not possible, you can upload the sample as a zip
file using "Restrict this comment/attachment". The option is located in the comment section, and it is the last icon button (an eye with a lock).
Thank you, that's very insightful. I was unable to find any change on the Lifecycle libraries that could break compatibility with AGP7. We'll need to reach out to the AGP team to check if they have any insight that could help us understand the issue.
ow...@google.com <ow...@google.com> #6
Hi i am also facing the same issue "androidx.lifecycle.ReportFragment" class not found
whenever i upgrade from 2.7.0 to 2.8.0 or 2.8.2, this exception crashes the app on launch
this happens in debug mode too, when minify is disabled and no classes are removed by proguard, i tried these in 2 different projects
This is the on create of my application class
public class MyApplication extends MultiDexApplication implements Application.ActivityLifecycleCallbacks, DefaultLifecycleObserver{
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(this); // ActivityLifecycleCallbacks registered here
ProcessLifecycleOwner.get().getLifecycle().addObserver(this); // DefaultLifecycleObserver as observer
}
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onDestroy(owner);
}
... other functions are also overridden from listeners
}
FATAL EXCEPTION: main
Process: com.mycompany.mypackage, PID: 17498
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:7816)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:37)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:25)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ReportFragment$ActivityInitializationListener" on path: DexPathList[[zip file "/data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/base.apk"],nativeLibraryDirectories=[/data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/lib/arm64, /data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:37)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:25)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
whenever i upgrade from 2.7.0 to 2.8.0 or 2.8.2, this exception crashes the app on launch
this happens in debug mode too, when minify is disabled and no classes are removed by proguard, i tried these in 2 different projects
This is the on create of my application class
public class MyApplication extends MultiDexApplication implements Application.ActivityLifecycleCallbacks, DefaultLifecycleObserver{
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(this); // ActivityLifecycleCallbacks registered here
ProcessLifecycleOwner.get().getLifecycle().addObserver(this); // DefaultLifecycleObserver as observer
}
@Override
public void onDestroy(@NonNull LifecycleOwner owner) {
DefaultLifecycleObserver.super.onDestroy(owner);
}
... other functions are also overridden from listeners
}
FATAL EXCEPTION: main
Process: com.mycompany.mypackage, PID: 17498
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:7816)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: androidx.startup.StartupException: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:187)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/lifecycle/ReportFragment$ActivityInitializationListener;
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:37)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:25)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.lifecycle.ReportFragment$ActivityInitializationListener" on path: DexPathList[[zip file "/data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/base.apk"],nativeLibraryDirectories=[/data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/lib/arm64, /data/app/~~EwExlkboDf8bk3j1eosDWA==/com.mycompany.mypackage-c51A6mYy3awOqUgzqc2fgA==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:37)
at androidx.lifecycle.ProcessLifecycleInitializer.create(ProcessLifecycleInitializer.kt:25)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:238)
at androidx.startup.AppInitializer.discoverAndInitialize(AppInitializer.java:206)
at androidx.startup.InitializationProvider.onCreate(InitializationProvider.java:45)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2421)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2386)
at android.app.ActivityThread.installProvider(ActivityThread.java:7811)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7328)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7046)
at android.app.ActivityThread.access$1600(ActivityThread.java:271)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2125)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8250)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
Description
The behavior is already supported by doclava, but we'd like the ability to toggle it in dackka as well.
That is, to remove the generated class and package index headers in
_toc.yaml
files.