multidex解决65k方法数问题

296 阅读1分钟

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方法数的问题了