首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >android dexclassloader获取所有类的列表

android dexclassloader获取所有类的列表
EN

Stack Overflow用户
提问于 2012-08-30 19:15:45
回答 1查看 6.6K关注 0票数 8

我在我的android应用程序中使用资产或sdcard中的外部jar。为了做到这一点,我使用了DexClassLoader。

代码语言:javascript
复制
DexClassLoader cl = new DexClassLoader(dexInternalStoragePath.getAbsolutePath(),
                        optimizedDexOutputPath.getAbsolutePath(),
                        null,
                        getClassLoader());

要加载类,请执行以下操作:

代码语言:javascript
复制
Class myNewClass = cl.loadClass("com.example.dex.lib.LibraryProvider");

它真的很好用,但是现在我想在我的DexClassLoader中获得所有类名的列表,我发现this可以在java中工作,但是在android中没有这样的东西。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-30 20:17:39

要列出包含classes.dex文件的.jar文件中的所有类,请使用DexFile,而不是DexClassLoader,例如:

代码语言:javascript
复制
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);
}
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12195642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档