diff --git a/tools/anttasks/src/com/android/ant/ApkBuilderTask.java b/tools/anttasks/src/com/android/ant/ApkBuilderTask.java index 18a019158..a7ee02b78 100644 --- a/tools/anttasks/src/com/android/ant/ApkBuilderTask.java +++ b/tools/anttasks/src/com/android/ant/ApkBuilderTask.java @@ -68,7 +68,8 @@ public class ApkBuilderTask extends Task { private final ArrayList mZipList = new ArrayList(); private final ArrayList mFileList = new ArrayList(); private final ArrayList mSourceList = new ArrayList(); - private final ArrayList mJarList = new ArrayList(); + private final ArrayList mJarfolderList = new ArrayList(); + private final ArrayList mJarfileList = new ArrayList(); private final ArrayList mNativeList = new ArrayList(); private final ArrayList mZipArchives = new ArrayList(); @@ -141,7 +142,16 @@ public class ApkBuilderTask extends Task { */ public Object createJarfolder() { Value file = new Value(); - mJarList.add(file); + mJarfolderList.add(file); + return file; + } + + /** + * Returns an object representing a nested jarfile element. + */ + public Object createJarfile() { + Value file = new Value(); + mJarfileList.add(file); return file; } @@ -183,10 +193,15 @@ public class ApkBuilderTask extends Task { } // now go through the list of jar folders. - for (Value v : mJarList) { + for (Value v : mJarfolderList) { ApkBuilderImpl.processJarFolder(v.mPath, mResourcesJars); } + // now go through the list of jar files. + for (Value v : mJarfileList) { + ApkBuilderImpl.processJarFile(v.mPath, mResourcesJars); + } + // now the native lib folder. for (Value v : mNativeList) { String parameter = v.mPath; diff --git a/tools/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java b/tools/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java index 780af756c..6a8213eec 100644 --- a/tools/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java +++ b/tools/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java @@ -249,15 +249,18 @@ public final class ApkBuilderImpl { for (String file : files) { String path = f.getAbsolutePath() + File.separator + file; - FileInputStream input = new FileInputStream(path); - resourcesJars.add(input); + processJarFile(parameter, resourcesJars); } } else { - FileInputStream input = new FileInputStream(parameter); - resourcesJars.add(input); + processJarFile(parameter, resourcesJars); } } + public static void processJarFile(String jarfilePath, Collection resourcesJars) + throws FileNotFoundException { + FileInputStream input = new FileInputStream(jarfilePath); + resourcesJars.add(input); + } /** * Processes a {@link File} that could be a {@link ApkFile}, or a folder containing