android studio 中 java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder错误解决或java.lang.NoClassDefFoundError: retrofit2.BuiltInConverters错误解决方法
此问题在android5.0以上不会出现,在android4.0-4.4会出现。
引起该问题的原因是:
项目比较大,还引用了一些第三方的包,所以导致Dex文件方法数超过限制,无法编译,于是我在Module的build.gradle中设置了multiDexEnabled true,这样就不会提示方法数超限。但是4.0+的Android系统依然无法编译运行,报上面的错误。
一开始准备设置成false或者直接删除这行,但是还会在4.0+手机出现下图问题:
解决方法:
1. 在Module的build.gradle中设置了multiDexEnabled true
2. 在Module的build.gradle中添加
compile 'com.android.support:multidex:1.0.2' 或者手动下载该jar包放在libs中.
3. 修改自己应用的入口Application,让其继承MultiDexApplication,并重写attachBaseContext方法。
public class myApplication extends MultiDexApplication {
}
4.如果你无法继承MultiDexApplication,也可以在该application中重写attachBaseContext()方法,并添加MultiDex.install(this);
5.如果你的应用没有自定义Application方法,可以直接在AndroidManifest.xml清单文件中做如下声明:
<application
......
android:name="android.support.multidex.MultiDexApplication">
......
</application>
然后问题就解决了。