Android工程方法數(shù)超過64k,The number of method references in a .dex file cannot exceed 64K.

最近將一個老的Eclipse項目轉(zhuǎn)到Android Studio后,用gradle添加了幾個依賴,項目可以make,但是一旦run就報錯

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

原因

項目的方法數(shù)超過了64k,需要進行分包處理!

Android Studio解決方案:

至于Eclipse的解決方法,似乎需要采用相應(yīng)插件!

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

這里是需要添加到buildTypes中,注意如果app依賴其他的module,那么在相應(yīng)的moudle(build.gradle)中也需要添加!

  1. 在defaultConfig下添加
multiDexEnabled true
第三步,創(chuàng)建MultiDexApplication
  1. 如果你有自定義的Application
    自定義Application 繼承 android.support.multidex.MultiDexApplication;,然后重寫其attachBaseContext方法
/**
     * 方法超過64K,需要采用分包
     * fjj 2019-3-27
     * @param base
     */
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this); // 初始化
    }
  1. 如果你自己的項目沒有自定義Application,也不需要自定義時,可直接在AndroidManifest.xmlapplication下指定:
android:name="android.support.multidex.MultiDexApplication;"

最后

此致,敬禮!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容