|
正常使用setPathAsync异步加载服务器的pag文件,发现在4.4的部分设备上会出现无法加载显示的问题,pag文件很小。但是下载到本地去通过setPath加载就可以正常加载,请问下这是什么原因呢? |
Answered by
CodeJhF
Jul 8, 2026
Replies: 3 comments 3 replies
|
您好,感谢反馈。 方便提供以下信息吗:
这些信息有助于定位是网络下载阶段的问题还是解码阶段的问题。 |
1 reply
|
感谢提供日志。从日志看 libpag 加载正常,没有发生 crash。 这种情况通常是网络下载阶段的问题。方便确认一下:
如果确实无法通过 setPathAsync 加载,可以先将 PAG 文件下载到本地缓存目录,再通过 setPath 加载,这样能绕过网络下载阶段的兼容性问题。 |
1 reply
|
感谢确认。排查后发现问题有两个:
我们准备在 您目前使用的(先下载再用 |
1 reply
Answer selected by
somnusM
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
感谢确认。排查后发现问题有两个:
NetworkFetcher中没有设置网络超时,HttpURLConnection默认超时为 0(无限等待),网络不稳定时可能导致下载永久挂起,onLoad回调无法被执行。即使超时后正常返回 null,如果下载或加载过程中有未捕获的异常,
NativeTask的后台线程会静默退出,onLoad回调同样不会被执行。我们准备在
NetworkFetcher中添加连接和读取超时,并在setPathAsync中添加异常保护,确保onLoad回调在任何情况下都会返回成功或失败的结果。您目前使用的(先下载再用
setPath加载)是有效的临时方案。