Resolve odex dependencies to jar files when needed
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassPathResolver.java b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassPathResolver.java
index 82525bb..5a45325 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassPathResolver.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/analysis/ClassPathResolver.java
@@ -133,7 +133,18 @@
throw new ResolveException(ex);
}
} catch (NotFoundException ex) {
- throw new ResolveException(ex);
+ if (entry.endsWith(".odex")) {
+ String jarEntry = entry.substring(0, entry.length() - 5) + ".jar";
+ try {
+ loadLocalOrDeviceBootClassPathEntry(jarEntry);
+ } catch (NoDexException ex2) {
+ throw new ResolveException("Neither %s nor %s contain a dex file", entry, jarEntry);
+ } catch (NotFoundException ex2) {
+ throw new ResolveException(ex);
+ }
+ } else {
+ throw new ResolveException(ex);
+ }
}
}