gpt4 book ai didi

android dexclassloader 获取所有类的列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:09 31 4
gpt4 key购买 nike

我在我的 android 应用程序中使用来自 Assets 或 sdcard 的外部 jar。为此,我使用 DexClassLoader。

DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),
optimizedDexOutputPath.getAbsolutePath(),
null,
getClassLoader());

加载类:

Class myNewClass = cl.loadClass("com.example.dex.lib.LibraryProvider");

它工作得很好,但现在我想在我的 DexClassLoader 中获取所有类名的列表我找到了 this在 java 中工作,但在 android 中没有这样的东西。

问题是如何从 DexClassLoader 获取所有类名的列表

最佳答案

要列出包含 classes.dex 文件的 .jar 文件中的所有类,您可以使用 DexFile,而不是 DexClassLoader,例如像这样:

String path = "/path/to/your/library.jar"
try {
DexFile dx = DexFile.loadDex(path, File.createTempFile("opt", "dex",
getCacheDir()).getPath(), 0);
// Print all classes in the DexFile
for(Enumeration<String> classNames = dx.entries(); classNames.hasMoreElements();) {
String className = classNames.nextElement();
System.out.println("class: " + className);
}
} catch (IOException e) {
Log.w(TAG, "Error opening " + path, e);
}

关于android dexclassloader 获取所有类的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12195642/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com