0

我想调试这段代码:

 DexClassLoader dexClassLoader = new DexClassLoader(apkPath, optDir, null, ClassLoader.getSystemClassLoader());
    Class<?> clazz = dexClassLoader.loadClass(className);

当我进入加载类方法时;android-studio步入java 1.8.Source并打开java1.8 java.lang.ClassLoader;它必须开源/android-27/java/lang/ClassLoader。如何打开正确的java代码?

4

1 回答 1

0

说实话,它的工作方向是正确的。DexClassLoader 继承 BaseDexLoader,后者继承 java.lang.ClassLoader。DexClassLoader 和 BaseDexLoader 都没有覆盖 loadClass 方法。java.lang.ClassLoader 存在于 android-xxxjar 文件中。如果您的 IDE 在调试模式下打开 Java1.8 类加载器而不是 Android-xxxjar 包括类加载器,则它与您的 IDE 完全相关。如果您使用 IntelliJ Idea 或 Android Studio,请转到项目结构,然后从项目设置底层项目中,选择库。选择 android-xxxjar 依赖项。接下来,分配正确的源路径。

把它从java1.8改成android-xxx-source.jar。

于 2018-08-14T07:44:28.040 回答