Lottie通过本地zip包加载遇到的诡异问题
本篇记录lottie加载遇到的一些坑或问题。
一、遇到一个Lottie加载本地zip包的诡异问题
private void loadLottieWithLocalZip() {try {LottieCompositionFactory.fromZipStream(new ZipInputStream(new FileInputStream("/sdcard/test.zip")), null).addListener(new LottieListener<LottieComposition>() {@Overridepublic void onResult(final LottieComposition lottieComposition) {if (lottieComposition != null) {mLottieView.setComposition(lottieComposition);mLottieView.playAnimation();}}}).addFailureListener(new LottieListener<Throwable>() {@Overridepublic void onResult(Throwable result) {Log.d("TTTT", "result:" + result.getMessage());}});} catch (Exception e) {Log.d("TTTT", "e:" + e.getMessage());}}
lottie加载不出来,走到Failure回调,异常如下:
解压后,lottie zip包里面有img_3.jpg:
查看data.json文件:
图片是jpg,但是下面这个cl是png,不懂lottie的字段是啥,怀疑可能有问题:
UE重新出了一个所谓的兼容lottie,试了一下,还是加载不出来,一样的报错。
咋办?看lottie源码去:
1、首先,看下抛出这个异常的代码:
拿不到这个bitmap,所以抛出了异常。
2、顺着这里往上看:
找到了,判断png或者webp的,才会加载bitmap,否则给close了。那么,我们基本确定,是因为UE给的lottie包里面的图片有jpg的,而通过zip包加载不支持jpg(不知道lottie为什么有这个限制)。
于是,我强制把jpg改为png,并修改了data.json里面的jpg,尝试加载,成功了!
二、iOS崩溃问题
好好的lottie在Android加载没问题,但是在iOS崩溃了。看下是不是json的某个layer缺了ind这个属性:
三、Android加载不显示问题
好好的lottie在iOS加载成功了,但是Android没加载出来,也没有crash。看下是不是在json里面直接使用base64编码的图片了。
Lottie通过本地zip包加载遇到的诡异问题相关推荐
- 本地jar包加载后,运行时报java.lang.NoClassDefFoundError解决方案
由于公司是内网,需要使用网上别的大佬的maven jar包时,使用到该方法的时候,总是报: Unexpected error occurred in scheduled task. java.lang ...
- java进阶(9)——JVM jar包加载顺序
最近工作当中遇到过好几例,由于项目当中依赖了一些框架,而这些框架无法直接修改时,我就直接本地代码写了一个同名同包路径的类,可以直接覆盖框架的类(本文说的框架类,不包括jdk的),屡试不爽.但是心里不免 ...
- c语言加载本地图片,Unity加载本地图片的2种方式
1. 使用 WWW 加载,详细查看 unity3d 官方文档. 2. 使用 System.IO 加载,lua 代码如下: local File = luanet.import_type("S ...
- uiwebview 读取本地html,UIWebView加载本地HTML文件
一.准备HTML文件及其资源文件 使用UIWebView加载本地的HTML文件 index.html,在index.html中引用了本地的图片.CSS文件.JS文件以及外部的图片. index.htm ...
- android编程中添加gif,Android应用开发之【Android】使用android-gif-drawable包加载GIF动图...
本文将带你了解Android应用开发之[Android]使用android-gif-drawable包加载GIF动图,希望本文对大家学Android有所帮助. [导包] 首先需要导入android-g ...
- Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接
Vue本地图片循环加载显示不出来,vue img标签 :src地址拼接 上代码: <img:src="img"alt="banner" /> dat ...
- web加载本地html,WKWebview加载本地html问题汇总
最近做的功能,有部分逻辑是h5实现的,我们采用了本地+网络的机制来提高h5的显示速度,首先说一下机制, 1.本地存在一份html文件+校验码 2.程序启动获取远程校验码 3.远程校验码与本地校验码,比 ...
- 解决AssetBundle包加载预制体时,Shader显示异常的问题
解决AssetBundle包加载预制体时,Shader显示异常的问题 参考文章: (1)解决AssetBundle包加载预制体时,Shader显示异常的问题 (2)https://www.cnblog ...
- SuperMap WebGL三维包加载3dtiles数据
使用超图最新版本的webGL包加载3dtiles数据,控制台无报错,查看请求发现b3dm文件也在请求,但三维球上却没有显示 var tileset = new Cesium.Cesium3DTiles ...
最新文章
- mysql 基于c_linux-基于MYSQL的C程序实践
- error C2220: 警告被视为错误 - 没有生成“object”文件
- linux查看xml文件的配置,Hibernate配置文件hibernate.cfg.xml的详细解释
- 将一个项目中的图片存到另一个项目中_复盘一个Smart200小项目(2)
- 查询出两个表中不同的数据
- java 电梯调度_OO_JAVA_多线程电梯调度_单元总结
- 高性能网络编程-反应堆模型(reactor)
- MIST浏览器不能连接私有链
- 什么叫冷备用状态_什么是热备用状态?
- [Java] Receipt 简易超市小票
- 2022,我们追逐群星,也在追逐AIGC的无尽可能
- OS X El Capitan 10.11开启性能模式
- latex 参考文献没有显示_LaTeX 参考文献的处理
- python画图:小圆覆盖大圆问题
- 电子信息工程专业考研考什么内容?
- java中format
- 迅投qmt量化交易系统以及实盘介绍
- docker和vm不兼容遇到的坑
- Python调用pikepdf模块解密PDF文件(使用tkinter模块绘制GUI)
- C4Dr18安装完成双击图标无任何反应,缺失libmmd.dll
热门文章
- section与div
- RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 3 and 2 ...
- 分数化小数(c语言)
- Modernizr.js简介
- 软考·系统架构师论文——论基于架构的软件设计方法及应用
- HTML常用表格及表单属性
- java计算机毕业设计贺卡商城设计与实现MyBatis+系统+LW文档+源码+调试部署
- 音游制作插件Koreographer-第0篇 简介
- SQL Server 安装:功能规则报错KB2919355s
- 没有光驱怎么重装系统