版本不同导致的classNotFoundException解决办法

在安卓开发中,我们肯定会用到第三方库或者第三方的SDK,在集成第三方SDK到自己项目时,不免会遇到各种各样的问题,昨天我在集成一卡通SDK时遇到了一个问题:编译能通过,但是当跳转到一卡通界面就报了下面的错误

 

 

看到这个错误一头雾水呀,在项目里全局搜索TintableCompoundDrawablesView也是搜索不到,在网上搜索也没有这方面的解决办法,幸好加的有SDK开发人员的微信,我和他聊了下这个问题,他那边也在找是什么原因。大概找了几十分钟后,他给我说了下,是不是我的androidx.core和他的不一样,这句话提醒了我!到项目中的 External Libraries  找到 androidx.core.widget  发现版本确实不一样(客户的版本是1.1.0,项目中使用的是1.0.1,这是修改过后的)

 

版本不同导致的classNotFoundException解决办法_第1张图片

 

于是我全局搜索1.0.1,发现有一处设置这个版本号的,我立马改成和SDK中的版本一致

版本不同导致的classNotFoundException解决办法_第2张图片

最后编译了下,发现TintableCompoundDrawablesView这个接口确实出现啦,开心呀!

版本不同导致的classNotFoundException解决办法_第3张图片

但是当我再次跳转到一卡通界面时又崩溃了,出现了另外一个错误,此时内心有一万个草泥马跑过,这特么是什么鬼!想整死老子呢,于是我按照上面的解决办法在 External Libraries下找 RxJava2CallAdapterFactory,确实找不到这个类!

 

 

然后到项目中看下这个版本,发现版本和SDK中依赖的版本一致!这是啥问题呢?? 不对比不知道,一对比恍然大悟额,依赖的是有点不同的,看下图对比

 

 

SDK中使用的是adapter-rxjava2,而项目中使用的是adapter-rxjava,果断加个2,编译运行成功啦!内心激动哦

版本不同导致的classNotFoundException解决办法_第4张图片

你可能感兴趣的:(安卓,bug,android)