我以前几天前收到过DexIndexOverflowException
,我做的是:
a)在我的multiDexEnabled true
文件中将build.gradle
添加到defaultConfig。
b)在依赖项部分添加compile 'com.android.support:multidex:1.0.1'
。
之后,一切再次运行正常。
今天,我在d.android.com网站(链接here)上阅读了multidex
用户指南,它说我也应该覆盖MultiDexApplication
类(因为我已经从Application
扩展了)。
我的问题是:由于我没有扩展MultiDexApplication
,仅通过执行上面提到的两件事,怎么可能不收到我之前收到的异常?我现在该怎么办?即使现在一切正常,我应该尝试扩展MultiDexApplication
吗?
最佳答案
您的代码必须在方法的数量限制附近,我建议使整体实现。否则,您可以查看依赖项并删除不使用的依赖项,然后使用ProGuard。良好的习惯是有帮助的,例如尽可能使用private
方法。
您可以使用MultiDex。
最少支持MultiDex的应用程序。使用旧版multidex
图书馆有3种可能性:
在您的AndroidManifest.xml中将此类声明为应用程序。
让您的应用程序扩展此类。
让您的应用程序覆盖受保护的voidattachBaseContext(以context为基础的开头){super.attachBaseContext(base); MultiDex.install(this);
最后一个应该适合您。