Fixed
Status Update
Comments
ch...@google.com <ch...@google.com> #2
Update: I was going to write Gradle 5.6.2 instead of just 5.6. Sorry for the mistake.
wq...@gmail.com <wq...@gmail.com> #3
I was able to find the actual "STRING_TOO_LARGE" occurrence using:
aapt2 dump xmltree --file res/drawable-anydpi-v24/ic_my_vector_image.xml app-debug.apk
But it was possible because the app has already crashed and the stacktrace was pointing to the resource ID so I knew which file I should look for.
I think there should be some way to use AAPT and find all such resources containing "STRING_TOO_LARGE" instead of waiting for the app to crash first.
aapt2 dump xmltree --file res/drawable-anydpi-v24/ic_my_vector_image.xml app-debug.apk
But it was possible because the app has already crashed and the stacktrace was pointing to the resource ID so I knew which file I should look for.
I think there should be some way to use AAPT and find all such resources containing "STRING_TOO_LARGE" instead of waiting for the app to crash first.
ch...@google.com <ch...@google.com> #4
Thanks for trying. Would it be possible for you to share the stack trace when using the latest version of R8, or to let us know which version of R8 you were using when getting the stack trace from comment #1 ? Also, would it be possible for you to share your Proguard configuration rules? If you prefer to share them privately, you can send them to christofferqa@google.com or sgjesse@google.com. Thanks!
ch...@google.com <ch...@google.com> #5
You can ignore comment #4 , as I just managed to reproduce the issue myself. I will follow up with a fix shortly.
ap...@google.com <ap...@google.com> #6
Project: r8
Branch: master
commit 35aa5321db5ef919231f08110261a2dacf023bfa
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 28 08:51:06 2019
Allow use of ellipsis in non-argument positions in Proguard rules
Bug: 126443924
Change-Id: I74a06c99c70546ae2ad10d6b4a8adb862f28b420
M src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
A src/test/java/com/android/tools/r8/proguard/configuration/ProguardRuleWithEllipsisForReturnTypeTest.java
https://r8-review.googlesource.com/34884
Branch: master
commit 35aa5321db5ef919231f08110261a2dacf023bfa
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Thu Feb 28 08:51:06 2019
Allow use of ellipsis in non-argument positions in Proguard rules
Bug: 126443924
Change-Id: I74a06c99c70546ae2ad10d6b4a8adb862f28b420
M src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
A src/test/java/com/android/tools/r8/proguard/configuration/ProguardRuleWithEllipsisForReturnTypeTest.java
ap...@google.com <ap...@google.com> #7
Project: r8
Branch: d8-1.4
commit ac2a02d463103567defd576014074a69893329cd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Mar 01 14:45:57 2019
Version 1.4.61
Cherry pick: Allow use of ellipsis in non-argument positions in Proguard rules
CL:https://r8-review.googlesource.com/c/r8/+/34884
Bug: 126443924
Change-Id: I4574ed65cf7ac2ac6213b64a040f3bdad9f97651
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
A src/test/java/com/android/tools/r8/proguard/configuration/ProguardRuleWithEllipsisForReturnTypeTest.java
https://r8-review.googlesource.com/34946
Branch: d8-1.4
commit ac2a02d463103567defd576014074a69893329cd
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Mar 01 14:45:57 2019
Version 1.4.61
Cherry pick: Allow use of ellipsis in non-argument positions in Proguard rules
CL:
Bug: 126443924
Change-Id: I4574ed65cf7ac2ac6213b64a040f3bdad9f97651
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/shaking/ProguardTypeMatcher.java
A src/test/java/com/android/tools/r8/proguard/configuration/ProguardRuleWithEllipsisForReturnTypeTest.java
ch...@google.com <ch...@google.com>
je...@gmail.com <je...@gmail.com> #8
after added
maven {
url 'http://storage.googleapis.com/r8-releases/raw '
}
maven {
url 'https://kotlin.bintray.com/kotlinx/ ' // Only needed if you use Kotlin.
}
and classpath 'com.android.tools:r8:1.4.93' // Must be before the Gradle Plugin for Android.
not build failed this error.
but new error is:
Cause: buildOutput.apkData must not be null
maven {
url '
}
maven {
url '
}
and classpath 'com.android.tools:r8:1.4.93' // Must be before the Gradle Plugin for Android.
not build failed this error.
but new error is:
Cause: buildOutput.apkData must not be null
ch...@google.com <ch...@google.com> #9
Thanks for the comment. That sounds like a different issue, so I opened b/133605951 . Could you please add some additional details to that bug? Does the error happen when you run `./gradlew clean assembleRelease --stacktrace`? If so, could you try to share the full stacktrace?
Description
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalStateException: java.lang.IllegalStateException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1005)
at com.android.tools.r8.utils.ThreadUtils.awaitFutures(ThreadUtils.java:21)
at com.android.tools.r8.shaking.RootSetBuilder.run(RootSetBuilder.java:326)
at com.android.tools.r8.R8.run(R8.java:287)
at com.android.tools.r8.R8.run(R8.java:229)
at com.android.tools.r8.R8.lambda$runForTesting$1(R8.java:220)
at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:60)
at com.android.tools.r8.utils.ExceptionUtils.withR8CompilationHandler(ExceptionUtils.java:48)
at com.android.tools.r8.R8.runForTesting(R8.java:216)
at com.android.tools.r8.R8.run(R8.java:129)
at com.android.builder.dexing.R8Tool.runR8(r8Tool.kt:184)
at com.android.build.gradle.internal.transforms.R8Transform.transform(R8Transform.kt:244)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.GeneratedMethodAccessor1976.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
at java.util.Optional.orElseGet(Optional.java:267)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
at java.util.Optional.map(Optional.java:215)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
... 35 more
Suppressed: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: java.lang.IllegalStateException
at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
... 90 more
[CIRCULAR REFERENCE:java.lang.IllegalStateException: java.lang.IllegalStateException]
Caused by: java.lang.IllegalStateException
at com.android.tools.r8.shaking.ProguardTypeMatcher$MatchAnyArgSequence.matches(ProguardTypeMatcher.java:152)
at com.android.tools.r8.shaking.ProguardMemberRule.matches(ProguardMemberRule.java:220)
at com.android.tools.r8.shaking.RootSetBuilder.ruleSatisfiedByMethods(RootSetBuilder.java:656)
at com.android.tools.r8.shaking.RootSetBuilder.ruleSatisfied(RootSetBuilder.java:634)
at com.android.tools.r8.shaking.RootSetBuilder.allRulesSatisfied(RootSetBuilder.java:622)
at com.android.tools.r8.shaking.RootSetBuilder.process(RootSetBuilder.java:218)
at com.android.tools.r8.shaking.RootSetBuilder.lambda$runPerRule$4(RootSetBuilder.java:301)
at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)