我以前几天前收到过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);
  


最后一个应该适合您。

07-24 09:26