为反射支持

时间:2015-11-10 19:44:54

标签: android maven android-maven-plugin multidex

我们正在使用android-maven-plugin以超过65k的方法构建一个针对Jelly Bean(4.3.x)的multidex应用程序。描述的方法here有助于创建MainDexList.txt文件,但不会自动包含将通过反射加载的类。

是否有任何可用的工具或流程可以创建具有反射支持的MainDexList.txt文件? [我们通过反射加载的大多数类都是通过String常量命名的......]

我们试图避免手动运行应用并一次处理一条NoClassDefFoundError条消息。

1 个答案:

答案 0 :(得分:0)

要处理NoClassDefFoundError,您只需要为每个项目添加MainDexList.txt即可。这应该可以立即解决您的初始错误。但是,由于您的MainDexList.txt仍然是空的,因此您将遇到更多问题。

要使用脚本加载MainDexList.txt而不是手动加载,您可以使用Google的这个开源脚本,它将生成应包含在MainDexList.txt中的确切类名。以下是Google实际提交的链接:

https://android.googlesource.com/platform/dalvik/+/2bb6fe45bf620525ba34bd7303d7ecb597aa0689

要了解更多信息(以及我的信息来源):

http://blog.osom.info/2014/10/generating-main-dex-list-file.html

备注:遗憾的是,这不支持反射,DexClassLoader.jar.apk文件中加载包含classes.dex条目的类。这也许值得一看。

希望这有帮助!