Fixed
Status Update
Comments
ka...@droidsonroids.pl <ka...@droidsonroids.pl> #2
Update: Neither proguard/R8 optimizations nor bundle split configuration seem to be relevant.
uc...@google.com <uc...@google.com>
je...@google.com <je...@google.com>
ga...@google.com <ga...@google.com> #3
What is the API of the device where the crash happens? Also, can you please share the AAB files built with 4.0.0-beta03 and with 4.1.0-alpha05
?
ga...@google.com <ga...@google.com> #5
AAB is missing the DEX file which contains j$ classes. Min sdk version is 24, and R8 is used. I am trying to repro.
ga...@google.com <ga...@google.com> #6
The issue is here -
We are invoking get()
on a provider, and that results in losing the task dependency information i.e. L8 task will not run before the bundle task.
bi...@google.com <bi...@google.com>
bi...@google.com <bi...@google.com> #7
Fixed with ag/11091372 which will be included in 4.1 canary 8.
Description
Version of Gradle: 6.3
Android Studio 4.1 Canary 5
Build #AI-193.6911.18.41.6362631, built on April 3, 2020
Runtime version: 1.8.0_242-release-1644-b3-6222593 x86_64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.4
Core library desugaring is enabled.
Does not occur on AGP 4.0.0-beta03, does not occur on APKs created by AGP 4.1.0-alpha05
Steps to Reproduce:
1. execute ./gradlew bundle<Variant> task
2. upload AAB to Play Store of Firebase Test lab
3. Observe the following crash just after app start:
2020-04-15 17:52:33.860 10598-10598/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.foo.bar, PID: 10598
java.lang.NoClassDefFoundError: Failed resolution of: Lj$/time/Clock;
at n0.r(com.android.tools.r8.jetbrains.kotlin-style lambda group:58)
at a1.k.a.g.i1(Unknown Source:1)
at i1.a.b.u.v.q.<clinit>(Unknown Source:4)
at com.foo.bar.init.InitProvider.attachInfo(Unknown Source:37)
at android.app.ActivityThread.installProvider(ActivityThread.java:7273)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6813)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6699)
at android.app.ActivityThread.access$2000(ActivityThread.java:273)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2020)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Caused by: java.lang.ClassNotFoundException: Didn't find class "j$.time.Clock" on path: DexPathList[[zip file "/data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/base.apk", zip file "/data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.ar.apk", zip file "/data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.arm64_v8a.apk", zip file "/data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.xhdpi.apk"],nativeLibraryDirectories=[/data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/lib/arm64, /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/base.apk!/lib/arm64-v8a, /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.ar.apk!/lib/arm64-v8a, /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.arm64_v8a.apk!/lib/arm64-v8a, /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.xhdpi.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at n0.r(com.android.tools.r8.jetbrains.kotlin-style lambda group:58)
at a1.k.a.g.i1(Unknown Source:1)
at i1.a.b.u.v.q.<clinit>(Unknown Source:4)
at com.foo.bar.init.InitProvider.attachInfo(Unknown Source:37)
at android.app.ActivityThread.installProvider(ActivityThread.java:7273)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6813)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6699)
at android.app.ActivityThread.access$2000(ActivityThread.java:273)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2020)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.ar.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:84)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:801)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:884)
at android.app.LoadedApk.getResources(LoadedApk.java:1135)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2623)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6595)
... 8 more
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.arm64_v8a.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
2020-04-15 17:52:33.860 10598-10598/? E/AndroidRuntime: at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:84)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:801)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:884)
at android.app.LoadedApk.getResources(LoadedApk.java:1135)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2623)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6595)
... 8 more
Suppressed: java.io.IOException: No original dex files found for dex location /data/app/com.foo.bar-DxmBMYWkv06MHuhTqfiGlg==/split_config.xhdpi.apk
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:354)
at dalvik.system.DexFile.<init>(DexFile.java:101)
at dalvik.system.DexFile.<init>(DexFile.java:75)
at dalvik.system.DexPathList.loadDexFile(DexPathList.java:394)
at dalvik.system.DexPathList.makeDexElements(DexPathList.java:354)
at dalvik.system.DexPathList.<init>(DexPathList.java:164)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:74)
at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)
at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:73)
at com.android.internal.os.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:88)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:84)
at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:40)
at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:801)
at android.app.LoadedApk.getClassLoader(LoadedApk.java:884)
at android.app.LoadedApk.getResources(LoadedApk.java:1135)
at android.app.ContextImpl.createAppContext(ContextImpl.java:2623)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:6595)
... 8 more