java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder或retrofit2.BuiltInConverters

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>

然后问题就解决了。

猜你喜欢

转载自blog.csdn.net/zhao8856234/article/details/105999609