同一项目中 不同版本的glide:3.7.0和glide:4.9
2021-02-10 本文已影响0人
AMrx
解决java.lang.NoSuchMethodError 问题。
一个项目中有俩个第三方包,一个包里的是glide:3.7.0 ,另一个包里的glide:4.9.0,方法冲突。但是又不能统一改成glide:4.9.0版本,因为4.9.0里有的方法,3.7.0里没有,而需要依赖glide3.7.0的项目包又需要这个方法。
只能直接修改glide3.7.0的内部代码了,先统一改成glide:4.9.0版本,然后点击定位到的错误,你会发现框架里有报错,如图
报错界面原因是当你升级到Glide V4时,Glide修改以及删除了一些方法。具体看这篇文章
或者是Glide V4官方文档
在Glide V4中 .asBitmap()放在了 .with()的后面。占位图和过渡动画等等也进行了修改,并且没有了SimpleTarget 这个方法。那怎么办呢?不用着急,虽然它没有了SimpleTarget,但是它还有SimpleTarget这个方法,我们只需要转换一下就好了。
修改后(注释掉的为之前的代码)
因为3.7.0的框架里可能像这样的错误有很多处,耐心的都改完就行了。
还有一个Drawable转换为Bitmap的方法。
好了,到了这一步之后,就大工告成了。接下来就是如何使用了。
有不懂的可以留言!