java.lang.NoClassDefFoundError: okhttp3.OkHttpClient

最近一个项目,某一天项目经理给了我一个小米手机。让我试试,


java.lang.NoClassDefFoundError: okhttp3.OkHttpClient_第1张图片
MIUI.png

没错就是这个
第一步安装:会出现这个错误
installation failed with message INSTALL_CANCELED_BY_USER


java.lang.NoClassDefFoundError: okhttp3.OkHttpClient_第2张图片
error.png
从字面意思来说,是用户取消了安装解决办法很简单
java.lang.NoClassDefFoundError: okhttp3.OkHttpClient_第3张图片
setting.png

打开这几个选项就行了,但是这个小米有个坑,设置好这些之后,安装的时候就卡住了,一直不能安装,必须重新连接手机才能安装。
安装成功以后这下可已用了吧,闪退:

java.lang.NoClassDefFoundError: okhttp3.OkHttpClient_第4张图片
crash.png

在网上找了一遍资料以后,发现可以这样解决
出现这个问题的原因是因为方法数超过了64K。解决办法
1、在APPdependencies里面加入
compile 'com.android.support:multidex:1.0.1'


compile.png

然后在defaultConfig中加入这段
defaultConfig {
multiDexEnabled true
}

config.png

2、在自己的APPLICATION中加入这段代码

java.lang.NoClassDefFoundError: okhttp3.OkHttpClient_第5张图片
Application.png

这段代码在API_21及以上加不加手机都不会报错, 在API_21以下就会爆出java.lang.NoClassDefFoundError: okhttp3.OkHttpClient错误。
到此解决问题

你可能感兴趣的:(java.lang.NoClassDefFoundError: okhttp3.OkHttpClient)