uni-app 米13 安卓版本14 调用 uni.chooseImage 闪退 重启

发布于 1周前 作者 sinazl 来自 Uni-App

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: 发一下具体的崩溃信息。

回复 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),分析闪退前后的日志信息,查找可能的异常或错误提示。

由于无法直接运行和调试代码,以上建议主要基于经验和常见问题解决策略。希望这些代码示例和思路能帮助您定位问题所在。如果问题依旧存在,可能需要更详细的日志信息或联系设备制造商获取支持。

回到顶部