Automated rollback of commit 03ed75c913d20bef1360ea1371087233b5c38709.
*** Reason for rollback ***
Breaks the 2018.08.28-1 nightly: []
*** Original change description ***
aapt2 android_binary rules will always use compiled data to merge.
RELNOTES: None
PiperOrigin-RevId: 210536466
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ProcessedAndroidData.java b/src/main/java/com/google/devtools/build/lib/rules/android/ProcessedAndroidData.java
index fec7ff6..90a55e2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ProcessedAndroidData.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ProcessedAndroidData.java
@@ -78,7 +78,9 @@
AndroidResourcesProcessorBuilder builder =
builderForNonIncrementalTopLevelTarget(dataContext, manifest, manifestValues, aaptVersion)
- .setUseCompiledResourcesForMerge(aaptVersion == AndroidAaptVersion.AAPT2)
+ .setUseCompiledResourcesForMerge(
+ aaptVersion == AndroidAaptVersion.AAPT2
+ && dataContext.getAndroidConfig().skipParsingAction())
.setManifestOut(
dataContext.createOutputArtifact(AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST))
.setMergedResourcesOut(
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 fb35727..09d6936 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
@@ -4320,7 +4320,7 @@
ConfiguredTarget b = getDirectPrerequisite(a, "//java/b:b");
List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedResources(a).getApk());
+ getGeneratingSpawnActionArgs(getValidatedResources(a).getRTxt());
assertThat(resourceProcessingArgs).contains("AAPT2_PACKAGE");
String directData =
@@ -4337,50 +4337,6 @@
}
@Test
- public void alwaysSkipParsingActionWithAapt2() throws Exception {
- mockAndroidSdkWithAapt2();
- scratch.file(
- "java/b/BUILD",
- "android_library(",
- " name = 'b',",
- " srcs = ['B.java'],",
- " manifest = 'AndroidManifest.xml',",
- " resource_files = [ 'res/values/values.xml' ], ",
- ")");
-
- scratch.file(
- "java/a/BUILD",
- "android_binary(",
- " name = 'a',",
- " srcs = ['A.java'],",
- " manifest = 'AndroidManifest.xml',",
- " deps = [ '//java/b:b' ],",
- " resource_files = [ 'res/values/values.xml' ], ",
- " aapt_version = 'aapt2'",
- ")");
-
- useConfiguration("--android_sdk=//sdk:sdk");
- ConfiguredTarget a = getConfiguredTarget("//java/a:a");
- ConfiguredTarget b = getDirectPrerequisite(a, "//java/b:b");
-
- List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedResources(a).getApk());
-
- assertThat(resourceProcessingArgs).contains("AAPT2_PACKAGE");
- String directData =
- resourceProcessingArgs.get(resourceProcessingArgs.indexOf("--directData") + 1);
- assertThat(directData).contains("symbols.zip");
- assertThat(directData).doesNotContain("merged.bin");
- assertThat(resourceProcessingArgs).contains("--useCompiledResourcesForMerge");
-
- // Libraries will still need to merge the xml until skip parsing is on by default.
- List<String> resourceMergingArgs =
- getGeneratingSpawnActionArgs(getValidatedResources(b).getJavaClassJar());
-
- assertThat(resourceMergingArgs).contains("MERGE");
- }
-
- @Test
public void testAapt1BuildsWithAapt2Sdk() throws Exception {
mockAndroidSdkWithAapt2();
scratch.file(