安卓APP想加载动图却没兼容androidX,只能用Lottie2.7?动不动就闪退怎么办?

目前设计师的AE能导出的动图有GIF和Json两种格式,在安卓项目中,加载一个普通的GIF使用Glide就行,Json格式的动图则需要使用Airbnb开源的Lottie框架,网上随手就能搜到很多关于Lottie的介绍和使用方法,再次就不再赘述了。顺手附上lottie-android的github地址:https://github.com/airbnb/lottie-android   。然而,在实际项目中接入这个框架时,Lottie在github上的一句话引起了我的注意:

意思是2.8.0开始的版本需要项目兼容androidX才能用,如果一个成熟的大项目切换到androidX需要花费的成本过高,你能用的最高版本只能是2.7.0(截止至2020年6月,最新版本是3.4.0),而低版本有一些严重的问题,下面以加载json的url为例,常见问题如下(如果需要加载静态json文件,处理方式也是一样的)。

1.加载json的url错误,网络返回了404就直接闪退了,连异常也无法捕捉

LottieAnimationView在代码中最简单的应用就两句话:

lottieAnimationView.setAnimationFromUrl(url);
 lottieAnimationView.playAnimation();

别高兴得太早,试试故意写一个错误的url,立刻就闪退,我们看看源码中能不能找到解决方案

注意这里设置了一个加载失败的回调failureListener,我们来看看它是什么

failureListener是LottieListener类型的,并且是private final的,所以我们不能获取它也不能修改它,而它只抛出了一个异常,所以就直接闪退了,经过尝试,这个异常是不能直接捕捉到的。我在官方的github上看到了有人提到了这个issue,并且留言回复中有人给出了解决方案,关键在于源码的第一句话

setCompositionTask(LottieCompositionFactory.fromUrl(getContext(), url));

这句话给LottieAnimati

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值