multidex解決65k方法數問題

鋸齒流沙發表於2017-12-26

android中單個dex檔案最大的方法數是65536,如果超過這個方法數之後就會無法完成編譯工作並且丟擲DexIndexOverflowException異常,這個異常一般簡稱65k方法數問題。解決這個問題,Google給出的解決方案就是使用multidex,當然我們也可以使用外掛化來解決。multidex方案主要是針對android studio和gradle編譯環境的。

下面我們來學習下使用multidex來解決65k方法數問題。 首先需要引入android-support-multidex.jar這個jar包 在app的gradle的defaultConfig中加入multiDexEnabled true,如圖

gradle.png

public class BaseApplication extends Application {
    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(this);
    }

    /**
     * 獲取上下文
     *
     * @return
     */
    public static Context getContext() {
        return mContext;
    }


    public static BaseApplication getInstance() {
        return (BaseApplication) mContext;
    }
}
複製程式碼

在attachBaseContext方法中加入MultiDex.install(this); 一般的完成這兩個步驟就可以解決65k方法數的問題了

相關文章