【发布时间】:2015-05-22 13:40:56
【问题描述】:
我们最近在使用 Multidexing 时遇到了问题,特别是在使用 gradle multidex 插件 ('com.android.support:multidex:1.0.0') 为 Dalvik VM 构建时。
似乎 gradle 难以解析应该包含在主 dex 文件中的正确类。结果,我们最终得到了一个成功完成的构建过程,但是有时会生成一个主 dex 文件,其中不包含正确实例化主应用程序所需的一个或多个类(它本身扩展MultiDexApplication)。
我们当前的蛮力构建一致的解决方案是监控由 multidex 生成的中间文件。当我们有一个 good 构建(即正确实例化主应用程序和 MultiDexApplication 的构建)时,然后将包含在主 dex 文件中的类列表复制到一个文件中,然后我们强制执行 multidex使用(使用 --main-dex-list 参数)。这暂时使我们能够将所需的类“强制”到主 dex 文件中,但显然不是很容易维护,并且在添加新的类/依赖项时无法轻松更新。
我们正在使用 Dagger 2 进行依赖注入,我们怀疑这会以某种方式阻止 multidex 插件正确识别主应用程序的依赖项——这可能是原因吗?我们还遇到了各种关于使用最小的“App Wrapper”(其自身扩展 MultiDexApplication)作为多索引处理的“入口点”的参考资料,但找不到足够的文档来说明该过程。
如果您能就此提供一些见解,那就太好了 - 这是您以前遇到过的问题吗?有已知的解决方法吗?非常感谢您提供有关我们如何实现“App Wrapper”模式的任何细节
【问题讨论】:
标签: android android-gradle-plugin dagger-2 android-multidex