Fix overly aggressive regex when filtering resource classess The regex in place will filter any class that ends in R.class or R$.*.class (e.g. leakcanary/internal/ObjectsKt$NO_OP_HANDLER$1.class) Closes #14085. PiperOrigin-RevId: 402351528
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java index 9fe7926..9a3cdc9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -970,7 +970,7 @@ .addExplicitFilter("/BR\\.class$") .addExplicitFilter("/databinding/[^/]+Binding\\.class$"); if (removeAllRClasses) { - builder.addExplicitFilter("R\\.class").addExplicitFilter("R\\$.*\\.class"); + builder.addExplicitFilter("(^|/)R\\.class").addExplicitFilter("(^|/)R\\$.*\\.class"); } builder.build();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java index 68704ca..5d98fca 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -4449,7 +4449,7 @@ "--checkHashMismatch", "IGNORE", "--explicitFilters", - "/BR\\.class$,/databinding/[^/]+Binding\\.class$,R\\.class,R\\$.*\\.class", + "/BR\\.class$,/databinding/[^/]+Binding\\.class$,(^|/)R\\.class,(^|/)R\\$.*\\.class", "--outputMode", "DONT_CARE"); }