diff options
author | Xavier Ducrohet <xav@android.com> | 2012-03-01 18:02:19 -0800 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2012-03-01 18:05:17 -0800 |
commit | 314a75226677df8933fd38824e9510acde90fe87 (patch) | |
tree | 456ad99f91b1b1ee5cb421ed6e51019fa5c32dc2 | |
parent | 8e700cd45398cabff12e16ee535d02933c0d3220 (diff) | |
download | sdk-314a75226677df8933fd38824e9510acde90fe87.zip sdk-314a75226677df8933fd38824e9510acde90fe87.tar.gz sdk-314a75226677df8933fd38824e9510acde90fe87.tar.bz2 |
Only generate the libraries R/manifest classes in the app project.
If the project is a library itself then there's no need to generate
them.
Change-Id: I9896e2bac81979797cca10fc606c66e5139fc9a1
4 files changed, 12 insertions, 12 deletions
diff --git a/anttasks/src/com/android/ant/AaptExecTask.java b/anttasks/src/com/android/ant/AaptExecTask.java index 547e945..eabbbd2 100644 --- a/anttasks/src/com/android/ant/AaptExecTask.java +++ b/anttasks/src/com/android/ant/AaptExecTask.java @@ -218,7 +218,7 @@ public final class AaptExecTask extends SingleDependencyTask { * The manifest will be rewritten so that its package ID becomes the value given here. * Relative class names in the manifest (e.g. ".Foo") will be rewritten to absolute names based * on the existing package name, meaning that no code changes need to be made. - * + * * @param packageName The package ID the APK should have. */ public void setManifestpackage(String packageName) { @@ -356,8 +356,9 @@ public final class AaptExecTask extends SingleDependencyTask { String libPkgProp = null; // if the parameters indicate generation of the R class, check if - // more R classes need to be created for libraries. - if (mRFolder != null && new File(mRFolder).isDirectory()) { + // more R classes need to be created for libraries, only if this project itself + // is not a library + if (mNonConstantId == false && mRFolder != null && new File(mRFolder).isDirectory()) { libPkgProp = taskProject.getProperty(mProjectLibrariesPackageName); if (libPkgProp != null) { // Replace ";" with ":" since that's what aapt expects @@ -527,7 +528,7 @@ public final class AaptExecTask extends SingleDependencyTask { } } - if (extraPackages != null && extraPackages.length() > 0) { + if (mNonConstantId == false && extraPackages != null && extraPackages.length() > 0) { task.createArg().setValue("--extra-packages"); task.createArg().setValue(extraPackages); } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java index cdee0aa..6c4eca4 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java @@ -813,13 +813,11 @@ public class PostCompilerBuilder extends BaseBuilder { rootFolder.getFullPath()); String name = file.getName(); - // we don't package any R[$*] classes whatever the package (because we generate - // more than one if there are library dependencies). Also ignore Manifest and - // BuildConfig classes that are in the app package. - if (R_PATTERN.matcher(name).matches() || - (mAppPackage.equals(packageApp.toString()) && + // Ignore the library's R/Manifest/BuildConfig classes. + if (mAppPackage.equals(packageApp.toString()) && (BUILD_CONFIG_CLASS.equals(name) || - MANIFEST_PATTERN.matcher(name).matches()))) { + MANIFEST_PATTERN.matcher(name).matches() || + R_PATTERN.matcher(name).matches())) { return; } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java index 7713f47..8234f25 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java @@ -805,7 +805,8 @@ public class PreCompilerBuilder extends BaseBuilder { array.add("--auto-add-overlay"); //$NON-NLS-1$ } - if (libraryPackages != null) { + // there's no need to generate the R class of the libraries if this is a library too. + if (isLibrary == false && libraryPackages != null) { array.add("--extra-packages"); //$NON-NLS-1$ array.add(libraryPackages); } diff --git a/files/ant/build.xml b/files/ant/build.xml index d1596eb..d68b56b 100644 --- a/files/ant/build.xml +++ b/files/ant/build.xml @@ -700,7 +700,7 @@ <jar destfile="${out.library.jar.file}"> <fileset dir="${out.classes.absolute.dir}" - excludes="**/R.class **/R$*.class ${manifest.package.path}/Manifest.class ${manifest.package.path}/Manifest$*.class ${manifest.package.path}/BuildConfig.class"/> + excludes="${manifest.package.path}/R.class ${manifest.package.path}/R$*.class ${manifest.package.path}/Manifest.class ${manifest.package.path}/Manifest$*.class ${manifest.package.path}/BuildConfig.class"/> <fileset dir="${source.absolute.dir}" excludes="**/*.java ${android.package.excludes}" /> </jar> </then> |