summaryrefslogtreecommitdiff
path: root/library/src
diff options
context:
space:
mode:
authorMaurice Chu <mochu@google.com>2013-11-14 19:08:32 -0800
committerMaurice Chu <mochu@google.com>2013-11-15 19:39:26 +0000
commit66f379f774e06e650375750d18b1695ddb853371 (patch)
tree3f3bb401be8641caad68fbe7a0be45a1ea600ef9 /library/src
parent4be173048a01fb57f3c26b85fbff3c2bcf9a1267 (diff)
downloadmultidex-66f379f774e06e650375750d18b1695ddb853371.tar.gz
Update mZips field in classloader for GB
This enables mockito tests to also run. Bug: 11709435 Change-Id: I9ebc5f5441a396c12eb8cde554d69a003fa6e7ad
Diffstat (limited to 'library/src')
-rw-r--r--library/src/android/support/multidex/MultiDex.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/library/src/android/support/multidex/MultiDex.java b/library/src/android/support/multidex/MultiDex.java
index 1fffe3d..6df578b 100644
--- a/library/src/android/support/multidex/MultiDex.java
+++ b/library/src/android/support/multidex/MultiDex.java
@@ -16,14 +16,14 @@
package android.support.multidex;
+import dalvik.system.DexFile;
+
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.util.Log;
-import dalvik.system.DexFile;
-
import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
@@ -36,6 +36,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.ListIterator;
import java.util.Set;
+import java.util.zip.ZipFile;
/**
* Monkey patches {@link Context#getClassLoader() the application context class
@@ -361,6 +362,7 @@ public final class MultiDex {
StringBuilder path = new StringBuilder((String) pathField.get(loader));
String[] extraPaths = new String[extraSize];
File[] extraFiles = new File[extraSize];
+ ZipFile[] extraZips = new ZipFile[extraSize];
DexFile[] extraDexs = new DexFile[extraSize];
for (ListIterator<File> iterator = additionalClassPathEntries.listIterator();
iterator.hasNext();) {
@@ -370,12 +372,14 @@ public final class MultiDex {
int index = iterator.previousIndex();
extraPaths[index] = entryPath;
extraFiles[index] = additionalEntry;
+ extraZips[index] = new ZipFile(additionalEntry);
extraDexs[index] = DexFile.loadDex(entryPath, entryPath + ".dex", 0);
}
pathField.set(loader, path.toString());
expandFieldArray(loader, "mPaths", extraPaths);
expandFieldArray(loader, "mFiles", extraFiles);
+ expandFieldArray(loader, "mZips", extraZips);
expandFieldArray(loader, "mDexs", extraDexs);
}
}