由于项目中集成了太多的第三方应用,如友盟推送、友盟分享、以及百川即时通讯,导致了各种编译异常,最终都是由于包冲突导致。解决方法如下:
第一步,修改主module的build.gradle文件
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
第二步,继承android.support.multidex.MultiDexApplication类,这里需要注意一下,有两种情况
第一种情况,如果我们的APP没有重写过Application类,我们直接继承MultiDexApplication,然后在manifest.xml中注册Application即可。
第二种情况,如果我们已经重写过Application类,重写attachBaseContext(Context)方法,并调用MultiDex.install(this);即可:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
因为之前已经重写过Application类,所以我这里采用了第二种方法,重写attachBaseContext,到此问题暂时解决。