Fixed
Status Update
Comments
ze...@google.com <ze...@google.com> #2
Thank you for the report!
The likely fix for this is that R8 should not do outlining for library builds, which seems to have gone under the radar. We will update this issue once we have a fix that you can use.
The likely fix for this is that R8 should not do outlining for library builds, which seems to have gone under the radar. We will update this issue once we have a fix that you can use.
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: master
commit 6cb65a7915fb172b16d5d111325e72d6343e2d32
Author: Ian Zerny <zerny@google.com>
Date: Wed Oct 30 13:30:55 2019
Don't run the outliner when compiling to classfiles.
Bug: 143550696
Change-Id: I989a1d8430d563495118533d39fc6b94bed1d6f4
M src/main/java/com/android/tools/r8/R8Command.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/NoOutliningForClassFileBuildsTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithClassArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithInterfaceArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithPrimitiveArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b112247415/B112247415.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b133215941/B133215941.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/classtypes/B134462736.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/primitivetypes/PrimitiveTypesTest.java
https://r8-review.googlesource.com/45007
Branch: master
commit 6cb65a7915fb172b16d5d111325e72d6343e2d32
Author: Ian Zerny <zerny@google.com>
Date: Wed Oct 30 13:30:55 2019
Don't run the outliner when compiling to classfiles.
Bug: 143550696
Change-Id: I989a1d8430d563495118533d39fc6b94bed1d6f4
M src/main/java/com/android/tools/r8/R8Command.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/NoOutliningForClassFileBuildsTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithClassArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithInterfaceArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithPrimitiveArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b112247415/B112247415.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b133215941/B133215941.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/classtypes/B134462736.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/primitivetypes/PrimitiveTypesTest.java
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: 1.6
commit 818b7d645752686d851f6e31c34d868dcae314de
Author: Søren Gjesse <sgjesse@google.com>
Date: Tue Nov 05 13:10:08 2019
Version 1.6.46
Cherry-pick: Don't run the outliner when compiling to classfiles.
CL:https://r8-review.googlesource.com/c/r8/+/45007
Resolved conflict by adding
src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
which was not on the branch.
Bug: 143550696
Change-Id: Ica63d398d8ecfe6c645332231e2dea5998dece73
M src/main/java/com/android/tools/r8/R8Command.java
M src/main/java/com/android/tools/r8/Version.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/NoOutliningForClassFileBuildsTest.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithClassArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithInterfaceArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithPrimitiveArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b112247415/B112247415.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b133215941/B133215941.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/classtypes/B134462736.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/primitivetypes/PrimitiveTypesTest.java
https://r8-review.googlesource.com/45172
Branch: 1.6
commit 818b7d645752686d851f6e31c34d868dcae314de
Author: Søren Gjesse <sgjesse@google.com>
Date: Tue Nov 05 13:10:08 2019
Version 1.6.46
Cherry-pick: Don't run the outliner when compiling to classfiles.
CL:
Resolved conflict by adding
src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
which was not on the branch.
Bug: 143550696
Change-Id: Ica63d398d8ecfe6c645332231e2dea5998dece73
M src/main/java/com/android/tools/r8/R8Command.java
M src/main/java/com/android/tools/r8/Version.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/NoOutliningForClassFileBuildsTest.java
A src/test/java/com/android/tools/r8/ir/optimize/outliner/OutlinesWithNonNullTest.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithClassArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithInterfaceArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/arraytypes/OutlinesWithPrimitiveArrayTypeArguments.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b112247415/B112247415.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/b133215941/B133215941.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/classtypes/B134462736.java
M src/test/java/com/android/tools/r8/ir/optimize/outliner/primitivetypes/PrimitiveTypesTest.java
ze...@google.com <ze...@google.com> #5
A fix for this has landed on our 1.6 branch. You can try it out by updating your top build.gradle file with:
buildscript {
repositories {
maven {
url 'http://storage.googleapis.com/r8-releases/raw '
}
}
dependencies {
classpath 'com.android.tools:r8:1.6.46' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
buildscript {
repositories {
maven {
url '
}
}
dependencies {
classpath 'com.android.tools:r8:1.6.46' // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
}
}
Description
When we are developing our application we depend on two android libraries (1 internal - 1 external) which are obfuscated and optimized by R8. Our application uses proguard due to some optimizations that are not supported by R8 yet.
Since both libraries optimized by R8, R8 generates a class with name GeneratedOutlineSupport.
This causes our application build to throw an exception during task "check<Variant>DuplicateClasses".
I believe R8 should generate formerly mentioned classes with unique names or packages in order to keep compatibility with proguard applications.
Gradle version:
5.4.1
Android Plugin Version:
3.5.0
Module Compile Sdk Version:
28
Module Build Tools Version:
Bundled with plugin
Android SDK Tools version:
29.0.2