Add --error-on-failed-insert option to aapt.
The new SDK build system give the ability to insert
versionCode/Name and min/targetSdkVersion in the manifest
but aapt won't replace those if they already exist.
The main problem is that aapt doesn't actually fail when
it doesn't replace them, making the output not what the
developer wanted.
This patch set adds an option to aapt to make it return
an error if the insert failed because the attribute
already existed.
Change-Id: I8938ec1238da407a8562c974e9598db39001ffd9
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index 9570c66..1773f48 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -177,6 +177,11 @@
" Make the resources ID non constant. This is required to make an R java class\n"
" that does not contain the final value but is used to make reusable compiled\n"
" libraries that need to access resources.\n"
+ " --error-on-failed-insert\n"
+ " Forces aapt to return an error if it fails to insert values into the manifest\n"
+ " with --debug-mode, --min-sdk-version, --target-sdk-version --version-code\n"
+ " and --version-name.\n"
+ " Insertion typically fails if the manifest already defines the attribute.\n"
" --ignore-assets\n"
" Assets to be ignored. Default pattern is:\n"
" %s\n",
@@ -542,6 +547,8 @@
bundle.setInstrumentationPackageNameOverride(argv[0]);
} else if (strcmp(cp, "-auto-add-overlay") == 0) {
bundle.setAutoAddOverlay(true);
+ } else if (strcmp(cp, "-error-on-failed-insert") == 0) {
+ bundle.setErrorOnFailedInsert(true);
} else if (strcmp(cp, "-product") == 0) {
argc--;
argv++;