PictureSelector 集成中遇到的问题

遇到问题时间线:

1、本来项目中使用的是PictureSelector 2.2.3版本,但是遇到个问题,最新MIUI系统,相册选图片时,选择相机拍照,但是拍完的照片无法预览

2、想着现在这个版本已经很老了,干脆直接升级到最新版本,上github一看(https://github.com/LuckSiege/PictureSelector),最新的已经是3.0.5了。那想什么啊,直接依赖最新版本。

3、然后就编译报错了,说PictureSelector 的compileSdkVersion版本是31,而我项目的版本是30,所以不得行。那就把自己的项目的版本改成31呗,改了还是编不过,把错误日志百度一下。说是因为android studio不支持31,把31改成30就可以了。我尼玛,这不是死锁了吗。

4、为了一个框架而已,更新自己项目不划算。退而求其次,那我就换低版本的嘛。最开始是2.2.3,根据历史包(Releases · LuckSiege/PictureSelector · GitHub),那就换个2.7.3的,不行,编译时报一样的错误,那就换个2.7.0的,还是不行,那就换个2.6.0的。2.6.0的编译一下,还是报错了,但是错误不一样了,资源文件冲突,虽然还是没编过,但是说明不是版本问题了。好的,解决资源冲突(去缓存里面找到2.6.0那个arr包,然后把冲突的资源文件直接删了,然后手动依赖改好的arr包),编译,好家伙,没问题了,测试一下先相处再拍照功能,功能也没得问题了,提交bug,看知乎了。

5、测试把bug打回来了,说拍照确实可以了,但是点击图片预览不行了,App要崩。这东西又啥情况啊,看一下奔溃日志,没有找到ucrop里面的类,因为已经没有2.6.0的文档,结合最新的版本介绍,好像是吧裁剪和压缩功能已经分开了,需要哪个集成那个。我这不缺个ucrop嘛,也不知道2.6.0的时候集成的是那个版本的ucrop哦,那就直接集成一个最新的ucrop吧,试试,集成好了,编译,没报错,上机测试,预览也可以了,完美。

6、因为ucrop是裁剪相关的,那就试试裁剪功能吧,结果又奔溃了,日志显示没有CutInfo类,难道说是最新版的ucrop已经删除了这个类,去github上看看,我去,这个文件夹已经3年没有更新过了,那就是说可能ucrop里面根本就没有这个类,而这个类是PictureSelector的作者自己加的,他通过源码集成了ucrop,自己改了改,又没有加在PictureSelector项目里面,可能需要PictureSelector 的最新版本一样分开集成,需要什么集成什么,这也能明白为什么只要不调裁剪,项目就能够正常运行。可是,又哪儿去找这个特殊版本的ucrop呢?

7、还是只有去历史记录里面(Releases · LuckSiege/PictureSelector · GitHub),找到2.6.0版本,直接下载整个2.6.0版本的源码,然后就找到的自定义版本的ucrop源码,直接将这个model依赖进项目,编译(中间有点点配置小问题,改了就好了),成功,试试裁剪功能,再次提交bug,应该没什么问题了。

如果你遇到和我一样的问题,希望对你有帮助,提供一个思路。

如果你不想思考,那就直接去下载我提供的两个arr包吧(PictureSelector2.6.0版本-Android文档类资源-CSDN下载PictureSelector2.6.0配套的ucrop-Android文档类资源-CSDN下载),把这两个arr包放进项目里面,看原作者的2.0版本的api使用(PictureSelector 2.0 Api说明 · LuckSiege/PictureSelector Wiki · GitHub

如果遇到其他什么问题,别再下面评论问,我也不知道

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值