记录一次寻找java.lang.NoClassDefFoundError错误的原因及解决办法

博客讲述了解决Mapbox初始化时出现找不到类错误的过程。通过层层查找,发现是包未引用或版本不对,先引入gson、okhttp3等相关包,重新运行仍失败,后发现是okHttp3中okio依赖缺失,下载离线包后成功加载地图,还提供了下载离线包地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一般该错误都是包里面的某个类找不到,但是通过查询是存在的,但是其实是因为包没有引用到,或者版本不对,所以一层层的查找;

2.debug定位到基本的位置吗,我是初始化Mapbox出现错误,所以一层层查找,但是log中并没有提示具体哪个类有问题;

3,所以我查看了Mapbox的依赖,缺少了什么,查看我只是依赖了Mapbox地图相关的离线包,但是这些包依赖的相关包没有引入;

4.所以我开始引入 gson okhttp3等相关包;

5.重新运行,还是失败,再次log,开始提示

java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer;

这个类找不到,所以百度了一下,是okHttp3中的
compile group: 'com.squareup.okio', name: 'okio', version: '1.14.0' 

这个依赖没有,所以我下载了这个离线包,依赖重新运行,成功加载地图。

6.由此找到此原因,每次遇到def找不到,很无奈,感觉麻烦,这次自己找到原因,感觉要记录下来,牢牢记住。

7.下载离线包地址:https://mvnrepository.com/ 这个很好用,可以一层层寻找每个包所依赖的所有库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值