UNI 您所在的位置:网站首页 苹果查找闪退什么原因 UNI

UNI

2024-01-31 02:24| 来源: 网络整理| 查看: 265

问题

最近使用uni-app开发了一款APP,使用的是vue3+vite并且在APP中有大量的地图操作和手机拍照,原本都比较正常,但是在引入一个三方原生SDK后就出现偶现闪退,闪退操作不限于任何页面,但是在进入地图操作后或者使用APP调用摄像头拍照后闪退概率大幅度提升,有时候使用7-8分钟就闪退几次,出现机型在小米12 13尤为明显,在老机型上如小米11pro就不不存在。

问题排查

最开始认为是内存溢出造成了APP闪退,后续更换了手机调用摄像头方式,关闭了APP中持续定位操作后只是降低了APP闪退频率,但并未解决,后续再排查发现,小米12再安装APP时会提示一个警告如下图:

image.png

该警告标识APP为适配64位处理器,但是我们在打包时有设置uni-app的兼容类型如下图:

image.png

这就让人很疑问? 是否有什么原因导致打包生成的apk没有将arm64-v8a包打进去,能想到的就是某个三方SDK不兼容导致了云打包时向下兼容。

下一步做的查看APP包

对云打包生成的apk文件解压查看文件(关于平台兼容是在lib文件下):

image.png

查看后果然没有arm64-v8a文件夹,可判断APP云打包时果然没有把64位兼容打进去,尽管我们勾选了64位兼容,下一步就是对三方SDK进行排查,最终我们发现了某一个插件不兼容导致,对插件进行了剔除比重新打包,解压后的apk文件lib文件夹如下:

image.png 可发现此时APP已经兼容64手机了并且安装时不会报错了,APP的包会变大10M左右。

总结

uni-app 在开发中会遇到不少问题,这里就提过一些自己的一些解决思路: APP卡死: APP卡死一般是业务代码写的有问题,如死循环,DOM操作耗时太长,语法存在问题(uni并没有完全兼容vue语法,可查看官方文档)等,这种可以使用基座包调试查看控制台报错,使用断点的方式基本可解决,特别是问题必先,那么多检查代码写法和数据问题,采用console 或者 断点逐步调试都可以解决。

APP闪退: 正常情况下,uniapp在开发阶段基座包和正式包差别不大,所以对闪退也可以通过基座包调试,一般情况业务代码不会引起闪退,造成闪退比较多的是三方插件或SDK,所以遇到闪退时,特别要排查三方插件。对于本次APP在具体机型上面偶先闪退问题就是兼容性造成的,可查看自己APP的兼容范围主要是两个配置:

兼容平台 32位 64位 x64 Android兼容版本如:minSdkVersion:22

image.png

APP打包后报错排查

使用APP调试插件如:debuggerExtern.js 调试插件

ext.dcloud.net.cn/plugin?id=7…

image.png

使用方法参考文档,它最方便的就是可以在你打包好的APP进行错误捕捉 和 查看接口请求记录 如下图

image.png

通过uni统计查看文件记录 uni-app自带错误捕捉可通过uni统计上传到后台如下图所示:

image.png

不过uni统计的报错经常会被编码不是很容易查看,uni官方说可以在打包时把sourceMap打进去,如下图:

image.png 但是经过多次尝试,APP项目大之后会出现node溢出问题,造成成打包失败,希望官方能够升级一下HbuilderX的node。

最后

如果有uni-app的开发小伙伴有其他问题如框架选择,项目搭建,组件封装等都可以可以私信小编交流。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有