diff --git a/.classpath b/.classpath
index ca5afd1a61e..75481dbe505 100755
--- a/.classpath
+++ b/.classpath
@@ -19,7 +19,7 @@
-
-
+
+
diff --git a/ant.settings.jenkins b/ant.settings.jenkins
index 882a5da0ec3..4f2107ab48a 100644
--- a/ant.settings.jenkins
+++ b/ant.settings.jenkins
@@ -4,8 +4,8 @@ xmlprinter.jar=libs/AXMLPrinter2.jar
## Location of Polyglot classes jar file to link Soot against
polyglot.jar=libs/polyglot.jar
-dexlib2.jar=libs/dexlib2-2.2b3-55c33ebb.jar
-dexlib-utils.jar=libs/util-2.2b3-55c33ebb.jar
+dexlib2.jar=libs/dexlib2-2.2b4-adb12356.jar
+dexlib-utils.jar=libs/util-2.2b4-adb12356.jar
slf4j-api.jar=libs/slf4j-api-1.7.5.jar
slf4j-simple.jar=libs/slf4j-simple-1.7.5.jar
diff --git a/ant.settings.template b/ant.settings.template
index efbcc44326e..6705d22dc4a 100644
--- a/ant.settings.template
+++ b/ant.settings.template
@@ -4,8 +4,8 @@ xmlprinter.jar=libs/AXMLPrinter2.jar
## Location of Polyglot classes jar file to link Soot against
polyglot.jar=libs/polyglot.jar
-dexlib2.jar=libs/dexlib2-2.1.3-a5d82813.jar
-dexlib-utils.jar=libs/util-2.1.3-a5d82813.jar
+dexlib2.jar=libs/dexlib2-2.2b4-adb12356.jar
+dexlib-utils.jar=libs/util-2.2b4-adb12356.jar
slf4j-api.jar=libs/slf4j-api-1.7.5.jar
slf4j-simple.jar=libs/slf4j-simple-1.7.5.jar
diff --git a/src/soot/DexClassProvider.java b/src/soot/DexClassProvider.java
index ca9565cd054..8328390ef8d 100755
--- a/src/soot/DexClassProvider.java
+++ b/src/soot/DexClassProvider.java
@@ -125,10 +125,9 @@ private void buildDexIndex(Map index, List classPath) {
for (Enumeration extends ZipEntry> entries = archive.entries(); entries.hasMoreElements();) {
ZipEntry entry = entries.nextElement();
String entryName = entry.getName();
- if(entryName.endsWith(".dex")){
- entryNames.add(entryName);
- if(!Options.v().process_multiple_dex())
- break;
+ if(entryName.endsWith(".dex")) {
+ if (Options.v().process_multiple_dex() || entryName.equals("classes.dex"))
+ entryNames.add(entryName);
}
}
}catch(Exception e){
diff --git a/src/soot/SourceLocator.java b/src/soot/SourceLocator.java
index 44e52419b6e..688d27ea8a4 100755
--- a/src/soot/SourceLocator.java
+++ b/src/soot/SourceLocator.java
@@ -242,7 +242,8 @@ private List getClassesUnder(String aPath, String prefix) {
String entryName = entry.getName();
// We are dealing with an apk file
if (entryName.endsWith(".dex"))
- classes.addAll(DexClassProvider.classesOfDex(new File(aPath), entryName));
+ if (Options.v().process_multiple_dex() || entryName.equals("classes.dex"))
+ classes.addAll(DexClassProvider.classesOfDex(new File(aPath), entryName));
}
} catch (IOException e) {
throw new CompilationDeathException("Error reasing archive '" + aPath + "'",e);
@@ -294,7 +295,8 @@ else if(entryName.endsWith(".dex")){
if(Options.v().process_multiple_dex()){
for(String dexEntryName : dexEntryNames){
try {
- classes.addAll(DexClassProvider.classesOfDex(file,dexEntryName));
+ classes.addAll(DexClassProvider.classesOfDex(
+ file,dexEntryName));
} catch (Throwable e) {} /* Ignore unreadable files */
}
}else{
diff --git a/src/soot/toDex/DexPrinter.java b/src/soot/toDex/DexPrinter.java
index 3e050efdd15..8d77a478d5a 100755
--- a/src/soot/toDex/DexPrinter.java
+++ b/src/soot/toDex/DexPrinter.java
@@ -156,7 +156,7 @@ public class DexPrinter {
public DexPrinter() {
int api = Scene.v().getAndroidAPIVersion();
- dexFile = DexBuilder.makeDexBuilder(Opcodes.forApi(api));
+ dexFile = new DexBuilder(Opcodes.forApi(api));
}
private void printApk(String outputDir, File originalApk) throws IOException {