公司面向第三方的SDK出现 java.lang.NoClassDefFoundError 之类的崩溃,但只有一个用户出现,机型系统主要出现在4.x,在stack overflow看到主要是 5.0以下一些手机对Android程序的方法数超出了65535造成的崩溃。解决办法如下:
在Model的build.gradle中的defaultConfig 中声明 multiDexEnabled true,在依赖中添加 compile 'com.android.support:multidex:1.0.1',配置信息如下:部分信息根据自己环境配置
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.xxx.xxx"
minSdkVersion 15
targetSdkVersion 22
versionCode 1
versionName "1.0"
multiDexEnabled true
}
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
}
配 置完成之后Application 继承 MultiDexApplication,然后AndroidManifest.xml声明继承的Application。
如果你的Application已经继承了其他类并且不想做改动,那么还有另外一种使用方式,覆写attachBaseContext()方法:
public class MyApplication extends FooApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
配置完成Clean Project,Rebuild Project然后再打包测试发版。