Fixed
Status Update
Comments
ar...@google.com <ar...@google.com>
je...@google.com <je...@google.com>
mi...@google.com <mi...@google.com> #2
Stack trace retraced to:
Caused by: java.lang.NullPointerException: Cannot invoke "com.android.tools.r8.graph.E0.D1()" because the return value of "com.android.tools.r8.graph.y.d(com.android.tools.r8.graph.I2)" is null
at com.android.tools.r8.verticalclassmerging.policies.NoFieldResolutionChangesPolicy.fieldResolutionMayChange(NoFieldResolutionChangesPolicy.java:46)
at com.android.tools.r8.verticalclassmerging.policies.NoFieldResolutionChangesPolicy.canMerge(NoFieldResolutionChangesPolicy.java:30)
at com.android.tools.r8.verticalclassmerging.policies.VerticalClassMergerPolicy.canMerge(VerticalClassMergerPolicy.java:16)
at com.android.tools.r8.verticalclassmerging.policies.VerticalClassMergerPolicy.canMerge(VerticalClassMergerPolicy.java:9)
at com.android.tools.r8.verticalclassmerging.VerticalClassMergerPolicyExecutor.lambda$apply$1(VerticalClassMergerPolicyExecutor.java:75)
at com.android.tools.r8.verticalclassmerging.VerticalClassMergerPolicyExecutor.apply(VerticalClassMergerPolicyExecutor.java:73)
at com.android.tools.r8.verticalclassmerging.VerticalClassMergerPolicyExecutor.apply(VerticalClassMergerPolicyExecutor.java:66)
at com.android.tools.r8.classmerging.PolicyExecutor.run(PolicyExecutor.java:47)
at com.android.tools.r8.verticalclassmerging.VerticalClassMergerPolicyExecutor.run(VerticalClassMergerPolicyExecutor.java:44)
at com.android.tools.r8.verticalclassmerging.VerticalClassMerger.lambda$getConnectedComponentMergers$1(VerticalClassMerger.java:191)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResults$0(ThreadUtils.java:57)
at com.android.tools.r8.utils.ThreadUtils.lambda$processItemsWithResultsThatMatches$2(ThreadUtils.java:111)
Suppressed: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at com.android.tools.r8.utils.ExceptionUtils.unwrapExecutionException(ExceptionUtils.java:227)
at com.android.tools.r8.R8.run(R8.java:887)
at com.android.tools.r8.R8.run(R8.java:251)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:242)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:80)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:69)
at com.android.tools.r8.R8.runForTesting(R8.java:238)
at com.android.tools.r8.R8.run(R8.java:194)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:332)
at com.android.build.gradle.internal.tasks.R8Task$Companion.shrink(R8Task.kt:782)
at com.android.build.gradle.internal.tasks.R8Task$R8Runnable.execute(R8Task.kt:856)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:66)
...
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.base/java.util.concurrent.ForkJoinTask.reportExecutionException(Unknown Source)
at java.base/java.util.concurrent.ForkJoinTask.get(Unknown Source)
at com.android.tools.r8.threading.providers.blocking.ThreadingModuleBlocking.awaitFutures(ThreadingModuleBlocking.java:40)
at com.android.tools.r8.threading.TaskCollection.await(TaskCollection.java:68)
at com.android.tools.r8.threading.TaskCollection.awaitWithResults(TaskCollection.java:139)
at com.android.tools.r8.threading.TaskCollection.awaitWithResults(TaskCollection.java:146)
at com.android.tools.r8.utils.ThreadUtils.processItemsWithResultsThatMatches(ThreadUtils.java:115)
at com.android.tools.r8.utils.ThreadUtils.processItemsWithResults(ThreadUtils.java:97)
at com.android.tools.r8.utils.ThreadUtils.processItemsWithResults(ThreadUtils.java:77)
at com.android.tools.r8.utils.ThreadUtils.processItemsWithResults(ThreadUtils.java:56)
at com.android.tools.r8.verticalclassmerging.VerticalClassMerger.getConnectedComponentMergers(VerticalClassMerger.java:185)
at com.android.tools.r8.verticalclassmerging.VerticalClassMerger.mergeClassesInConnectedComponents(VerticalClassMerger.java:167)
at com.android.tools.r8.verticalclassmerging.VerticalClassMerger.run(VerticalClassMerger.java:114)
at com.android.tools.r8.verticalclassmerging.VerticalClassMerger.runIfNecessary(VerticalClassMerger.java:83)
at com.android.tools.r8.R8.run(R8.java:745)
an...@google.com <an...@google.com> #3
This is the issue in R8:
private boolean fieldResolutionMayChange(DexClass source, DexClass target) {
if (source.getType().isIdenticalTo(target.getSuperType())) {
...
for (DexType interfaceType : target.getInterfaces()) {
DexClass clazz = appView.definitionFor(interfaceType);
46 > for (DexEncodedField staticField : clazz.staticFields()) {
...
Apparently your compilation has a class with a missing interface, and the code here in R8 does not support it. We should fix this, but I'm alone in the office for the next week so it will take some weeks to get fixed.
Do you use a proguard rule starting with "-dontwarn"? A work-around would be to identify the missing interface and add it to the input, or identify the problematic class here and keep it.
ss...@gmail.com <ss...@gmail.com> #4 Restricted+
Restricted+
Comment has been deleted.
Description
Execution failed for task ':app:generateDebugLocaleConfig'.
> A failure occurred while executing com.android.build.gradle.tasks.GenerateLocaleConfigTask$GenerateLocaleWorkAction
> it must not be null
Android Studio Koala | 2024.1.1 Canary 3
Build #AI-241.14494.158.2411.11648550, built on March 29, 2024
Runtime version: 17.0.10+0--11609105 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11.0