Android 5.0以下出现java.lang.NoClassDefFoundError错误

来源:互联网 发布:梭哈网络用语什么意思 编辑:程序博客网 时间:2024/06/05 08:56

公司面向第三方的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 23buildToolsVersion "23.0.2"defaultConfig {applicationId "com.xxx.xxx"minSdkVersion 15targetSdkVersion 22versionCode 1versionName "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然后再打包测试发版。



0 0