Android工程方法数超过64k,The number of method references in a .dex file cannot exceed 64K.

最近将一个老的Eclipse项目转到Android Studio后,用gradle添加了几个依赖,项目可以make,但是一旦run就报错

1
2
Error:The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

原因

项目的方法数超过了64k,需要进行分包处理!

Android Studio解决方案:

至于Eclipse的解决方法,似乎需要采用相应插件!

第一步,添加依赖
1
implementation 'com.android.support:multidex:1.0.1'`
第二步,添加配置,build.gradle(app)
  1. buildTypes
    1
    2
    3
    dexOptions {
    preDexLibraries false
    }

这里是需要添加到buildTypes中,注意如果app依赖其他的module,那么在相应的moudle(build.gradle)中也需要添加!

  1. 在defaultConfig下添加
    1
    multiDexEnabled true
第三步,创建MultiDexApplication
  1. 如果你有自定义的Application
    自定义Application 继承 android.support.multidex.MultiDexApplication;,然后重写其attachBaseContext方法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /**
    * 方法超过64K,需要采用分包
    * fjj 2019-3-27
    * @param base
    */
    @Override
    protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this); // 初始化
    }
  2. 如果你自己的项目没有自定义Application,也不需要自定义时,可直接在AndroidManifest.xmlapplication下指定:

    1
    android:name="android.support.multidex.MultiDexApplication;"

最后

此致,敬礼!

~~客官随意,我只是学习怎么配置打赏而已~~