Android 5.0以下报NoClassDefFoundError
一开始,我的项目都是在API21(5.0)的情况下编写的,所以过程很顺利,没有任何的错误,但是偶然之下,我用了同事的4.4的测试机,发现只要用到网络请求的地方,就会报NoClassDefFoundError,毫无办法。因为项目里用到了okhttp跟retrofit,我一度以为是引入的包冲突了,在那查了半天,无果。后来发现是Multidex这个操作的时候有问题,网上一查,真的有这个问题,现在阐述一下具体解决过程。
论坛方法:
apply plugin: 'com.android.application'
android {
...
}
dependencies {
...
}
android.applicationVariants.all { variant ->
task "fix${variant.name.capitalize()}MainDexClassList"
没用出现该maindexlist.txt 文件解决办法
在上述代码执行后并没有出现maindexlist.txt 这个文件(其实我一开始也没有- -),然后我查阅了android程序员都知道的网站,发现自己确实引用了
compile 'com.android.support:multidex:1.0.0'
也确实设置了
multiDexEnabled true
但是没有在manifest文件中设置(不太习惯使用markdown的标签,application缺少标签,见谅)
application
...
android:name="android.support.multidex.MultiDexApplication">
...
/application
重新运行,不报错,问题解决