aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--anttasks/src/com/android/ant/ApkBuilderTask.java21
-rw-r--r--apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java11
2 files changed, 25 insertions, 7 deletions
diff --git a/anttasks/src/com/android/ant/ApkBuilderTask.java b/anttasks/src/com/android/ant/ApkBuilderTask.java
index 18a019158..a7ee02b78 100644
--- a/anttasks/src/com/android/ant/ApkBuilderTask.java
+++ b/anttasks/src/com/android/ant/ApkBuilderTask.java
@@ -68,7 +68,8 @@ public class ApkBuilderTask extends Task {
private final ArrayList<Value> mZipList = new ArrayList<Value>();
private final ArrayList<Value> mFileList = new ArrayList<Value>();
private final ArrayList<Value> mSourceList = new ArrayList<Value>();
- private final ArrayList<Value> mJarList = new ArrayList<Value>();
+ private final ArrayList<Value> mJarfolderList = new ArrayList<Value>();
+ private final ArrayList<Value> mJarfileList = new ArrayList<Value>();
private final ArrayList<Value> mNativeList = new ArrayList<Value>();
private final ArrayList<FileInputStream> mZipArchives = new ArrayList<FileInputStream>();
@@ -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 <var>jarfile</var> 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/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java b/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java
index 780af756c..6a8213eec 100644
--- a/apkbuilder/src/com/android/apkbuilder/internal/ApkBuilderImpl.java
+++ b/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<FileInputStream> 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