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>

 

然后问题就解决了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值