Fixed
Status Update
Comments
js...@google.com <js...@google.com> #2
Thank you for the report, and sorry for any inconvenience. While reproducing the issue, one workaround I found is: -keeppackagenames com.example.customview.extra** (i.e., double asterisks, instead of single).
https://www.guardsquare.com/en/products/proguard/manual/usage#filters
R8 currently regards <package_filter> in that directive as <class_filter>. That's why single asterisk---a class name not containing the package separator---doesn't work for now, whereas double asterisks---matches a class name, possibly containing any number of package separators---works. The caveat is, use of, e.g., extra**, will keep all the sub packages as well. :( We'll prepare the fix soon.
R8 currently regards <package_filter> in that directive as <class_filter>. That's why single asterisk---a class name not containing the package separator---doesn't work for now, whereas double asterisks---matches a class name, possibly containing any number of package separators---works. The caveat is, use of, e.g., extra**, will keep all the sub packages as well. :( We'll prepare the fix soon.
rm...@google.com <rm...@google.com>
sg...@google.com <sg...@google.com>
sg...@google.com <sg...@google.com>
ap...@google.com <ap...@google.com> #3
Project: r8
Branch: master
commit a9a9e7d1231726094c6e16c2cef1bad887da3bba
Author: Jinseong Jeon <jsjeon@google.com>
Date: Tue Apr 09 11:49:28 2019
Reproduce b/130135768 : keeppackagenames with asterisks
Bug: 130135768
Change-Id: I5ab1cdb5148a570a63bdd488358759bb33da700a
M src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
A src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/Top.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/sub/SubClass.java
https://r8-review.googlesource.com/36860
Branch: master
commit a9a9e7d1231726094c6e16c2cef1bad887da3bba
Author: Jinseong Jeon <jsjeon@google.com>
Date: Tue Apr 09 11:49:28 2019
Reproduce
Bug: 130135768
Change-Id: I5ab1cdb5148a570a63bdd488358759bb33da700a
M src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
A src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/Top.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/sub/SubClass.java
ap...@google.com <ap...@google.com> #4
Project: r8
Branch: master
commit 391e2992aee375adf46edbb5e7b098556c8604ed
Author: Søren Gjesse <sgjesse@google.com>
Date: Fri Apr 12 11:05:43 2019
New implementation of -keeppackagenames
This implementation collects the list of package names given for
-keeppackagenames and matches against that in the minifier.
The previous implementation created class matching rules to piggybag
on the existing matching.
Bug: 130135768
Change-Id: I5a341e145747a5dec8788a066a0c67d4e259ec77
M src/main/java/com/android/tools/r8/graph/DexType.java
M src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
D src/main/java/com/android/tools/r8/shaking/ProguardKeepPackageNamesRule.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageMatcher.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageNameList.java
M src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
M src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
M src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
A src/test/java/com/android/tools/r8/shaking/ProguardPackageNameMatcherTest.java
https://r8-review.googlesource.com/36944
Branch: master
commit 391e2992aee375adf46edbb5e7b098556c8604ed
Author: Søren Gjesse <sgjesse@google.com>
Date: Fri Apr 12 11:05:43 2019
New implementation of -keeppackagenames
This implementation collects the list of package names given for
-keeppackagenames and matches against that in the minifier.
The previous implementation created class matching rules to piggybag
on the existing matching.
Bug: 130135768
Change-Id: I5a341e145747a5dec8788a066a0c67d4e259ec77
M src/main/java/com/android/tools/r8/graph/DexType.java
M src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
D src/main/java/com/android/tools/r8/shaking/ProguardKeepPackageNamesRule.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageMatcher.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageNameList.java
M src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
M src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
M src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
A src/test/java/com/android/tools/r8/shaking/ProguardPackageNameMatcherTest.java
ap...@google.com <ap...@google.com> #5
Project: r8
Branch: d8-1.4
commit b6ca9ee953e43aa029411bb4db030e4694180063
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Apr 12 12:51:40 2019
Version 1.4.86
Cherry pick: New implementation of -keeppackagenames
CL:https://r8-review.googlesource.com/c/r8/+/36944
Cherry pick: Reproduce b/130135768 : keeppackagenames with asterisks
CL:https://r8-review.googlesource.com/c/r8/+/36860
Bug: 130135768
Change-Id: I8a340afe4811ec3f8826956c99b94346f4c2c8b4
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/graph/DexType.java
M src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
D src/main/java/com/android/tools/r8/shaking/ProguardKeepPackageNamesRule.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageMatcher.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageNameList.java
M src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
M src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
A src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/Top.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/sub/SubClass.java
M src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
A src/test/java/com/android/tools/r8/shaking/ProguardPackageNameMatcherTest.java
https://r8-review.googlesource.com/36959
Branch: d8-1.4
commit b6ca9ee953e43aa029411bb4db030e4694180063
Author: Christoffer Quist Adamsen <christofferqa@google.com>
Date: Fri Apr 12 12:51:40 2019
Version 1.4.86
Cherry pick: New implementation of -keeppackagenames
CL:
Cherry pick: Reproduce
CL:
Bug: 130135768
Change-Id: I8a340afe4811ec3f8826956c99b94346f4c2c8b4
M src/main/java/com/android/tools/r8/Version.java
M src/main/java/com/android/tools/r8/graph/DexType.java
M src/main/java/com/android/tools/r8/naming/ClassNameMinifier.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfiguration.java
M src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
D src/main/java/com/android/tools/r8/shaking/ProguardKeepPackageNamesRule.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageMatcher.java
A src/main/java/com/android/tools/r8/shaking/ProguardPackageNameList.java
M src/main/java/com/android/tools/r8/shaking/RootSetBuilder.java
M src/test/java/com/android/tools/r8/TestShrinkerBuilder.java
A src/test/java/com/android/tools/r8/naming/KeepPackageNamesTest.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/Top.java
A src/test/java/com/android/tools/r8/naming/keeppackagenames/sub/SubClass.java
M src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
A src/test/java/com/android/tools/r8/shaking/ProguardPackageNameMatcherTest.java
Description
AI-183.5429.30.34.5400832, JRE 1.8.0_152-release-1343-b01x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 1920x1080
Android Gradle Plugin: 3.4.0-rc03
Gradle: 5.1.1
NDK: from local.properties: 18.1.5063045; latest from SDK: 18.1.5063045;
LLDB: LLDB 3.1 (revision: 3.1.4508709)
CMake: from local.properties: (not specified); latest from SDK: (not found); from PATH: (not found);
Steps:
1. Set a rule to keeppackagenames (e.g. "-keeppackagenames com.example.customview.extra*")
2. Run the build (with obfuscation enabled)
3. The classes in packages matching that rule still get moved to packages with new names: "com.example.customview.extraStuff.HelloWorld -> com.example.customview.a.a:" (as seen in the map file)
The expected renaming is:
"com.example.customview.extraStuff.HelloWorld -> com.example.customview.extraStuff.a:"