diff options
author | 2016-07-08 20:40:19 +0000 | |
---|---|---|
committer | 2016-07-11 09:39:37 +0000 | |
commit | e49f3f6a4d9c99195480d2ed892039860d11b7f8 (patch) | |
tree | 87510f549a2dea32a98104c68891c01bc6c5d5db /src/tools/android/java/com | |
parent | 59bd0f1854a19c9849c701ca88b21c6601a89dc0 (diff) |
Fix android manifest merger from using only one mergee manifest.
Mergee manifests are pre-processed and written to a temp directory, based on their original path, before the final merge. Previously only the filename was used, resulting in each mergee overwriting the previous, all of which were <temp_dir>/AndroidManifest.xml. Using the full path of each manifest ensures this overwriting cannot occur.
--
MOS_MIGRATED_REVID=126942789
Diffstat (limited to 'src/tools/android/java/com')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/ManifestMergerAction.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/ManifestMergerAction.java b/src/tools/android/java/com/google/devtools/build/android/ManifestMergerAction.java index ce1884d6a4..3df7900d61 100644 --- a/src/tools/android/java/com/google/devtools/build/android/ManifestMergerAction.java +++ b/src/tools/android/java/com/google/devtools/build/android/ManifestMergerAction.java @@ -139,7 +139,9 @@ public class ManifestMergerAction { } } } - Path output = outputDir.resolve(manifest.getFileName()); + // Write resulting manifest to the output directory, maintaining full path to prevent collisions + Path output = outputDir.resolve(manifest.toString().replaceFirst("^/", "")); + Files.createDirectories(output.getParent()); TransformerFactory.newInstance().newTransformer().transform( new DOMSource(doc), new StreamResult(output.toFile())); |