gpt4 book ai didi

java - 在Android中查找包中的所有类

转载 作者:IT老高 更新时间:2023-10-28 23:38:29 25 4
gpt4 key购买 nike

如何在 Android 上找到一个包中的所有类?我使用 PathClassLoader,但它总是返回一个空枚举?

附加信息

尝试了建议的反射方法。关于反射库的几个要点。通过 maven central 提供的库与 Android 不兼容,并给出 dex 错误。我必须包含源代码并编译 dom4j、java-assist。

反射的问题,我最初的解决方案是android中的PathClassLoader返回一个空的包枚举。

方法的问题是 Android 中的 getResource 总是返回空枚举。

final String resourceName = aClass.getName().replace(".", "/") + ".class";

for (ClassLoader classLoader : loaders) {
try {
final URL url = classLoader.getResource(resourceName);
if (url != null) {
final String normalizedUrl = url.toExternalForm().substring(0, url.toExternalForm().lastIndexOf(aClass.getPackage().getName().replace(".", "/")));
return new URL(normalizedUrl);
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}

最佳答案

使用 DexFile 列出 apk 中的所有类:

    try {
DexFile df = new DexFile(context.getPackageCodePath());
for (Enumeration<String> iter = df.entries(); iter.hasMoreElements();) {
String s = iter.nextElement();
}
} catch (IOException e) {
e.printStackTrace();
}

剩下的就是使用正则表达式或其他东西来过滤掉你想要的类。

关于java - 在Android中查找包中的所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15446036/

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