uni-app 小米9手机拍照或者拍视频会重启app
uni-app 小米9手机拍照或者拍视频会重启app
uni-app,在小米9上调用摄像头会重启应用,选择相册不会,安卓9,清除后台运行的app后再试也是这样,有时候第一次正常,然后再退出,再进入app,拍照又会重启,hbuilder是3.3.13,alpha版本3.4.5也试过了都不行,并且uni-app官网的app示例也是这样。
已上传
回复 niupengyuan: 好 我找下相同设备测试下
回复 DCloud_Android_ST: 好的 谢谢
回复 DCloud_Android_ST: 你好,有结果了吗
回复 DCloud_Android_ST: 是小米系统还是安卓系统更新
回复 DCloud_Android_ST: 小米9最新的miui版本是12.5.6.0
回复 niupengyuan: miui的系统 我在小米官方云测平台测试了不少手机都没有问题。你测试下其他设备看看。目前看是系统bug引发的问题
回复 DCloud_Android_ST: 这个手机不在我这里是客户的,但是他的小米系统已经是最新的版本了
回复 niupengyuan: 嗯 目前云平台就一台小米9se能复现问题 不过也提供系统更新了 这问题我们也会跟进 但根本问题还是miui系统自身问题导致的。暂时还没有修复方案
回复 DCloud_Android_ST: 但是手机上是无法再更新版本的吧
回复 DCloud_Android_ST: 让客户再更新版本说的是已经是最新版本了
回复 niupengyuan: 我认为我说的已经很清楚了 现在没有解决方案
回复 DCloud_Android_ST: 我想问 你说的 “不过也提供系统更新了”,是在那提供的
在 uni-app
开发中,遇到小米9手机拍照或拍视频时应用重启的问题,可能是由于以下原因导致的:
1. 内存不足
- 原因:拍照或拍视频时,系统需要分配大量内存来处理图像或视频数据。如果应用内存占用过高,系统可能会强制关闭应用以释放内存。
- 解决方案:
- 优化应用的内存使用,减少不必要的内存占用。
- 在拍照或拍视频时,尽量减少其他后台任务的内存占用。
2. 相机权限问题
- 原因:如果应用没有正确获取相机权限,可能会导致应用崩溃或重启。
- 解决方案:
- 确保在
manifest.json
中正确配置了相机权限:{ "permission": { "scope.camera": { "desc": "需要访问相机以拍照或拍视频" } } }
- 在代码中动态请求相机权限:
uni.authorize({ scope: 'scope.camera', success() { console.log('相机权限已授权'); }, fail() { console.log('相机权限未授权'); } });
- 确保在
3. 相机 API 使用不当
- 原因:在使用
uni.chooseImage
或uni.chooseVideo
时,如果参数配置不当,可能会导致应用崩溃。 - 解决方案:
- 确保正确使用
uni.chooseImage
或uni.chooseVideo
API,并检查参数配置。 - 例如,使用
uni.chooseImage
时:uni.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有 success: function (res) { console.log(res.tempFilePaths); }, fail: function (err) { console.log(err); } });
- 确保正确使用
4. 系统兼容性问题
- 原因:某些手机型号(如小米9)可能存在系统兼容性问题,导致应用在调用相机时崩溃。
- 解决方案:
- 更新
uni-app
框架到最新版本,确保兼容性。 - 在小米9手机上测试时,尝试使用不同的相机 API 或参数配置,看看是否能解决问题。
- 更新
5. 日志分析
- 原因:应用崩溃时,可能没有足够的日志信息来定位问题。
- 解决方案:
- 使用
uni.getLogManager
获取日志信息,分析崩溃原因:const logger = uni.getLogManager(); logger.log('应用崩溃日志');
- 使用
6. 硬件加速问题
- 原因:某些手机在启用硬件加速时,可能会导致应用崩溃。
- 解决方案:
- 尝试禁用硬件加速,看看是否能解决问题:
uni.setEnableDebug({ enableDebug: false });
- 尝试禁用硬件加速,看看是否能解决问题:
7. 应用崩溃监控
- 原因:应用崩溃时,可能没有及时捕获异常。
- 解决方案:
- 使用
uni.onError
捕获全局异常:uni.onError(function (error) { console.error('捕获到全局异常:', error); });
- 使用