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");
   }