app运行时找不到第三方包里的某个类

昨天遇到一个问题:奇葩问题
java.lang.NoClassDefFoundError: okhttp3.Dispatcher
(找不到okhttp包里的Dispatcher类),咋一看以为是OKHttp出了问题,也以为是包冲突的问题,但都不是.而且这个错误只在5.0一下的机子手机上才会出现,其他手机上不会出现。由于我之前运行的app是没有任何问题的,代码肯定是不存在问题,但是昨天一直在代码上纠结,导致浪费时间。

这个问题实际是由于分包问题导致的,我们为了能正常编译

Dalvik可执行文件.dex中的Java方法数引用超过64k时,编译器编译将无法通过。
1.我们引入: /第三方依赖库/
compile ‘com.android.support:multidex:1.0.1’
2.且配置:defaultConfig {
applicationId "info.xxx.yyyy"
minSdkVersion 18
targetSdkVersion 25
versionCode 11
versionName "1.0.0.0"
// 解决太多dex导致的问题
multiDexEnabled true

这些都做了,但是我忘了初始化multidex,所以分包时就找不到相关的类
3.Application的`重写

 @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(base);
    }

完成初始化即可解决问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值