我将一个包含 .dex 文件的 .jar 文件放到目录“/sdcard”中,然后我尝试分别使用 DexClassLoader 和 PathClassLoader 将类加载到 .jar 文件中。他们都可以成功加载类。它们之间有什么区别?这是我的代码:
String dexPath = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "test.jar";
PathClassLoader classLoader1 = new PathClassLoader(dexPath, getClassLoader());
DexClassLoader classLoader2 = new DexClassLoader(dexPath, getDir("dex", 0).getAbsolutePath(), null, getClassLoader());
try {
Class clazz1 = classLoader1.loadClass("com.focans.loader.Peter");
Class clazz2 = classLoader2.loadClass("com.focans.loader.Peter");
} catch (Exception e) {
e.printStackTrace();
}