aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/android/java/com/google/devtools/build/android/resources
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-07-19 23:35:54 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-07-20 09:10:18 +0000
commita5851ac47f5ba7ef3e38373fea22feb4885738b1 (patch)
treed959ea7a8c76dfc55b56488791dc7e9b24d2c0b3 /src/tools/android/java/com/google/devtools/build/android/resources
parent0c6cccdcb423e155031d8f4930778a49bd2b061e (diff)
Plumb customPackage to RClassGenerator and skip empty R classes
Forgot to do this, so we get compiler errors since it can't find the R class imported under the requested custom java package. Also, avoid writing out the top-level R.class file if there are no symbols. There is a test that happens to check for this. -- MOS_MIGRATED_REVID=127888913
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/resources')
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/resources/RClassGenerator.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/resources/RClassGenerator.java b/src/tools/android/java/com/google/devtools/build/android/resources/RClassGenerator.java
index be25c0f6fa..8735e9ba8c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/resources/RClassGenerator.java
+++ b/src/tools/android/java/com/google/devtools/build/android/resources/RClassGenerator.java
@@ -109,7 +109,14 @@ public class RClassGenerator {
packageDir = new File(packageDir, folder);
}
File rClassFile = new File(packageDir, SdkConstants.FN_COMPILED_RESOURCE_CLASS);
+ // At least create the outFolder that was requested. However, if there are no symbols, don't
+ // create the R.class and inner class files (no need to have an empty class).
Files.createParentDirs(rClassFile);
+ Table<String, String, SymbolEntry> symbols = getAllSymbols();
+ if (symbols.isEmpty()) {
+ return;
+ }
+
String packageWithSlashes = packageName.replaceAll("\\.", "/");
String rClassName = packageWithSlashes + "/R";
ClassWriter classWriter = new ClassWriter(ClassWriter.COMPUTE_MAXS);
@@ -119,9 +126,7 @@ public class RClassGenerator {
classWriter.visitSource(SdkConstants.FN_RESOURCE_CLASS, null);
writeConstructor(classWriter);
- Table<String, String, SymbolEntry> symbols = getAllSymbols();
Table<String, String, SymbolEntry> values = getSymbols(symbolValues);
-
Set<String> rowSet = symbols.rowKeySet();
List<String> rowList = new ArrayList<>(rowSet);
Collections.sort(rowList);