a***@qq.com
a***@qq.com
  • 发布:2025-12-12 17:00
  • 更新:2025-12-12 17:01
  • 阅读:26

【报Bug】在小米手机,系统miui13/14(安卓12)上,调用相机会闪退崩溃

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.5

HBuilderX类型: 正式

HBuilderX版本号: 4.85

手机系统: Android

手机系统版本号: Android 12

手机厂商: 小米

手机机型: Redmi Note 9 Pro/红米 Note 11 4G

页面类型: vue

vue版本: vue3

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

// #ifdef APP-PLUS
const res = await new Promise((resolve, reject) => {
plus.android.requestPermissions(["android.permission.CAMERA","android.permission.READ_EXTERNAL_STORAGE","android.permission.READ_MEDIA_IMAGES","android.permission.READ_MEDIA_VISUAL_USER_SELECTED","android.permission.READ_MEDIA_VIDEO","android.permission.RECORD_AUDIO"], (res) => {
console.log("权限请求结果", res);
if (res.granted.length > 0) {
resolve(true);
} else {
reject(false);
}
});
});
if (!res) {
return;
}
// #endif
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album', 'camera'],
success: (result) => {
console.log("chooseImage success", result);
uni.showModal({
title: '提示',
content: result.tempFilePaths[0],
showCancel: false,
success: (result) => {
console.log("showModal success", result);
},
});
},
});
};

或者用

// #ifdef APP-PLUS
const res = await new Promise((resolve, reject) => {
plus.android.requestPermissions(["android.permission.CAMERA","android.permission.READ_EXTERNAL_STORAGE","android.permission.READ_MEDIA_IMAGES","android.permission.READ_MEDIA_VISUAL_USER_SELECTED","android.permission.READ_MEDIA_VIDEO","android.permission.RECORD_AUDIO"], (res) => {
console.log("权限请求结果", res);
if (res.granted.length > 0) {
resolve(true);
} else {
reject(false);
}
});
});
if (!res) {
return;
}
const camera = plus.camera.getCamera();
camera.captureImage((path) => {
console.log("captureImage success", path);
uni.showModal({
title: '提示',
content: path,
showCancel: false,
success: (result) => {
console.log("showModal success", result);
},
});
}, (error) => {
console.log("captureImage error", error);
});
// #endif

操作步骤:

小米安卓12,miui13/14 必现

预期结果:

应当正常使用

实际结果:

直接闪退

bug描述:

调用uni.chooseImage选拍照会闪退溃掉。用plus.camera也一样,下面是我的调试代码

2025-12-12 17:00 负责人:无 分享
已邀请:
AI问答小助手

AI问答小助手 - AI智答引擎,优解尽在掌握!

根据知识库内容,小米手机(MIUI13/14/Android12)调用相机闪退的问题,主要是由于系统内存不足导致。建议的解决方案:

使用nvue页面并内嵌自定义相机插件(原生或UTS插件),避免系统相机回收问题。相关分析可参考技术报告

检查应用内存占用,优化应用性能。

如需上架Google Play,注意添加相册访问声明

临时文件路径需调用saveFile持久化保存。

内容为 AI 生成,仅供参考

Ask小助手

Ask小助手

该bug反馈内容基本完整,标题、描述、代码示例、复现步骤、预期与实际结果、分类信息均具备,但可补充错误日志及更详细复现流程(如是否每次必现、是否需特定操作触发)。代码示例可直接运行,但未说明调用上下文(如页面生命周期位置)。

经核查知识库,该问题成立且有明确依据:知识库指出"在部分低端机如红米上拍照闪退,拍照调用的是系统相机,当系统内存不足,rom为了给相机activity分配内存而把app的主activity回收了",与用户反馈的小米Redmi Note系列设备(MIUI 13/14, Android 12)现象高度吻合。相关分析报告见此处。用户HBuilderX 4.85版本未完全覆盖此场景,因知识库显示该问题在后续版本中通过推荐使用nvue内嵌自定义相机插件解决。

非基本概念问题:用户已正确申请CAMERA等必要权限,代码逻辑无误,问题仅出现在特定厂商ROM(MIUI内存管理机制),属Android平台兼容性范畴。uni-app的uni.chooseImageplus.camera在低端机易受系统回收机制影响,而知识库明确建议"使用nvue页面并内嵌自定义相机插件"。

建议用户:1) 尝试改用nvue页面集成原生/uts相机插件;2) 更新至HBuilderX最新正式版(当前4.85可能未包含针对性修复);3) 检查是否因MIUI后台限制导致,可引导用户关闭电池优化设置。

内容为 AI 生成,仅供参考

要回复问题请先登录注册