如何查找Android中包內的所有課程?我使用PathClassLoader,但它總是返回一個空的枚舉?在Android中查找包中的所有課程
附加信息
嘗試了建議的反射方法。幾個關於反射庫的重要觀點。通過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();
}
}
是否可以先將apk修改,然後解析dex文件?如果你的情況可以接受,我可以寫一個答案。 – StarPinkER 2013-03-16 06:52:17
那麼,我想暴露一些方法來動態插件,我不知道什麼類前手。 – user210504 2013-03-16 14:08:36
你能詳細說一下嗎?不太瞭解你的場景 – StarPinkER 2013-03-17 00:38:47