uni-app 米13 安卓版本14 调用 uni.chooseImage 闪退 重启
uni-app 米13 安卓版本14 调用 uni.chooseImage 闪退 重启
项目信息 | 详细信息 |
---|---|
产品分类 | uniapp/App |
PC开发环境操作系统 | Windows |
PC开发环境操作系统版本号 | windows11 |
HBuilderX类型 | 正式 |
HBuilderX版本号 | 3.99 |
手机系统 | Android |
手机系统版本号 | Android 14 |
手机厂商 | 小米 |
手机机型 | 小米13 |
页面类型 | vue |
vue版本 | vue3 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
示例代码:
chooseImage: function () {
var that = this
var cmr = plus.camera.getCamera();
cmr.captureImage(function (p) {
plus.io.resolveLocalFileSystemURL(p, async function (entry: any) {
uni.compressImage({
src: entry.toLocalURL(),
quality: 50, // 压缩质量,范围为0-100
success: function (res) {
that.imageList = [res.tempFilePath];
console.log('压缩后的图片路径:', res.tempFilePath);
},
fail: function (err) {
console.log('压缩图片失败:', err);
}
});
}, function (e) {
console.log(":" + e);
});
}, function (e) {
});
// uni.chooseImage({
// sourceType: ["camera"],
// success: (result: any) => {
// this.imageList = result.tempFilePaths
// }
// })
},
```
操作步骤:
```
拍照 然后勾选 然后闪退 重启
```
预期结果:
```
不会闪退返回图片地址
```
实际结果:
```
然后闪退 重启
```
bug描述:
```
小米13 安卓版本14 调用 uni.chooseImage 闪退 换了 plus.camera.getCamera() 一样的,
5 回复
升级到最新的alpha版试一下
没用啊 试一试 用户那边还是一样 要闪退重启,有没有其他办法
回复 1***@qq.com: 解决了吗
针对您提到的在uni-app中,特定设备(米13,安卓版本14)调用uni.chooseImage
时出现闪退并重启的问题,这通常涉及到设备兼容性或系统API调用异常。由于无法直接访问设备进行调试,以下是一些可能的解决方案和代码示例,帮助您定位并尝试解决问题。
1. 捕获异常
首先,确保您的代码中有异常捕获机制,以便在调用uni.chooseImage
时捕获可能抛出的错误。
try {
uni.chooseImage({
count: 9,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success: (res) => {
console.log('选择图片成功', res);
},
fail: (err) => {
console.error('选择图片失败', err);
},
complete: () => {
console.log('选择图片完成');
}
});
} catch (error) {
console.error('调用chooseImage时捕获到异常', error);
// 可以考虑在这里做一些错误处理,比如显示Toast提示用户
}
2. 检查权限
确保应用已请求并获得了访问相册和相机的权限。在Android 14中,权限管理可能更加严格。
// 伪代码,实际获取权限的代码需要根据具体框架或插件实现
if (!hasPermissions()) {
requestPermissions([
'android.permission.READ_EXTERNAL_STORAGE',
'android.permission.WRITE_EXTERNAL_STORAGE',
'android.permission.CAMERA'
]).then(() => {
// 重新尝试调用chooseImage
}).catch((err) => {
console.error('请求权限失败', err);
});
} else {
// 直接调用chooseImage
}
3. 适配特定设备/系统版本
考虑到可能是特定设备或系统版本的问题,您可以尝试调整uni.chooseImage
的配置参数,或者查看是否有相关的设备/系统版本适配指南。
4. 更新uni-app和依赖
确保您的uni-app框架和相关依赖库都是最新版本,因为新版本可能已经修复了旧版本中的bug。
5. 日志分析
如果上述方法都无法解决问题,建议通过Android Studio等工具获取设备的详细日志(logcat),分析闪退前后的日志信息,查找可能的异常或错误提示。
由于无法直接运行和调试代码,以上建议主要基于经验和常见问题解决策略。希望这些代码示例和思路能帮助您定位问题所在。如果问题依旧存在,可能需要更详细的日志信息或联系设备制造商获取支持。