Apply --extra-packages in case --custom-pacakge is also specified.
Cherry-picked from master.
Change-Id: I2d67b8821afdf064f4186ccd8def1b65f9a7dc88
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index a4473c8..d428fef 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -1740,20 +1740,6 @@
// Write the R.java file into the appropriate class directory
// e.g. gen/com/foo/app/R.java
err = writeResourceSymbols(bundle, assets, assets->getPackage(), true);
- // If we have library files, we're going to write our R.java file into
- // the appropriate class directory for those libraries as well.
- // e.g. gen/com/foo/app/lib/R.java
- if (bundle->getExtraPackages() != NULL) {
- // Split on colon
- String8 libs(bundle->getExtraPackages());
- char* packageString = strtok(libs.lockBuffer(libs.length()), ":");
- while (packageString != NULL) {
- // Write the R.java file out with the correct package name
- err = writeResourceSymbols(bundle, assets, String8(packageString), true);
- packageString = strtok(NULL, ":");
- }
- libs.unlockBuffer();
- }
} else {
const String8 customPkg(bundle->getCustomPackage());
err = writeResourceSymbols(bundle, assets, customPkg, true);
@@ -1761,6 +1747,23 @@
if (err < 0) {
goto bail;
}
+ // If we have library files, we're going to write our R.java file into
+ // the appropriate class directory for those libraries as well.
+ // e.g. gen/com/foo/app/lib/R.java
+ if (bundle->getExtraPackages() != NULL) {
+ // Split on colon
+ String8 libs(bundle->getExtraPackages());
+ char* packageString = strtok(libs.lockBuffer(libs.length()), ":");
+ while (packageString != NULL) {
+ // Write the R.java file out with the correct package name
+ err = writeResourceSymbols(bundle, assets, String8(packageString), true);
+ if (err < 0) {
+ goto bail;
+ }
+ packageString = strtok(NULL, ":");
+ }
+ libs.unlockBuffer();
+ }
} else {
err = writeResourceSymbols(bundle, assets, assets->getPackage(), false);
if (err < 0) {