Fixed
Status Update
Comments
ag...@google.com <ag...@google.com>
ze...@google.com <ze...@google.com> #2
Thanks for the report. The workaround code failed to handle the case where an exception edge goes to an infinite loop. Not sure why proguard generates that code, but it is a mistake in our code not to handle it. Fix will follow shortly.
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: master
commit 5b20a1c526293a6c28a847f172d42cdf8f85f0cb
Author: Ian Zerny <zerny@google.com>
Date: Fri Apr 05 15:21:13 2019
Consider trivial loops in workaround code.
Bug: 129901036
Change-Id: I972460d74cbb0e8df2383313e958251f55ff30f3
M src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036Test.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036TestRunner.java
https://r8-review.googlesource.com/36805
Branch: master
commit 5b20a1c526293a6c28a847f172d42cdf8f85f0cb
Author: Ian Zerny <zerny@google.com>
Date: Fri Apr 05 15:21:13 2019
Consider trivial loops in workaround code.
Bug: 129901036
Change-Id: I972460d74cbb0e8df2383313e958251f55ff30f3
M src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036Test.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036TestRunner.java
ga...@gmail.com <ga...@gmail.com> #4
Thanks for fix.
And, do Google have a plan to backport this fix on R8 1.3 or 1.4 branch?
And, do Google have a plan to backport this fix on R8 1.3 or 1.4 branch?
ap...@google.com <ap...@google.com> #5
Project: r8
Branch: d8-1.4
commit 45d43326dc2317616326fe9a26d76866d99279cf
Author: Ian Zerny <zerny@google.com>
Date: Mon Apr 08 12:23:53 2019
Version 1.4.81
Cherry pick: Consider trivial loops in workaround code.
CL:https://r8-review.googlesource.com/c/r8/+/36805
Bug: 129901036
Change-Id: I632846b91789f01b2d0c0d3ad10b40f8d28d9b96
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036Test.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036TestRunner.java
https://r8-review.googlesource.com/36812
Branch: d8-1.4
commit 45d43326dc2317616326fe9a26d76866d99279cf
Author: Ian Zerny <zerny@google.com>
Date: Mon Apr 08 12:23:53 2019
Version 1.4.81
Cherry pick: Consider trivial loops in workaround code.
CL:
Bug: 129901036
Change-Id: I632846b91789f01b2d0c0d3ad10b40f8d28d9b96
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036Test.java
A src/test/java/com/android/tools/r8/debuginfo/Regress129901036TestRunner.java
ze...@google.com <ze...@google.com> #6
This fix has been pushed to our 1.4 branch and will make it into a later release of AS 3.4.
You can try it out locally by amending your build.gradle as follows:
buildscript {
repositories {
maven {
url 'http://storage.googleapis.com/r8-releases/raw '
}
}
dependencies {
classpath 'com.android.tools:r8:1.4.81' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:...'
}
}
You can try it out locally by amending your build.gradle as follows:
buildscript {
repositories {
maven {
url '
}
}
dependencies {
classpath 'com.android.tools:r8:1.4.81' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:...'
}
}
Description
When build app as release type, following error is raised while run :app:transformClassesWithDexBuilderForRelease task.
Caused by: java.lang.NullPointerException
at com.android.tools.r8.ir.optimize.CodeRewriter.workaroundExceptionTargetingLoopHeaderBug(CodeRewriter.java:3303)
at com.android.tools.r8.ir.conversion.IRConverter.performRegisterAllocation(IRConverter.java:1016)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeToDex(IRConverter.java:975)
at com.android.tools.r8.ir.conversion.IRConverter.finalizeIR(IRConverter.java:959)
at com.android.tools.r8.ir.conversion.IRConverter.rewriteCode(IRConverter.java:909)
at com.android.tools.r8.ir.conversion.IRConverter.convertMethodToDex(IRConverter.java:450)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$convertMethodsToDex$3(IRConverter.java:438)
at com.android.tools.r8.graph.DexClass.forEachMethod(DexClass.java:134)
at com.android.tools.r8.ir.conversion.IRConverter.convertMethodsToDex(IRConverter.java:436)
at com.android.tools.r8.ir.conversion.IRConverter.lambda$convertClassesToDex$2(IRConverter.java:423)
And I found "target" is assigned as null on
Also I found this NPE is not raised with following options.
* turn on R8 using gradle.properties
* or set minifyEnabled as false
It seems this NPE is raised only when minified with proguard.