l***@cti-cert.com
l***@cti-cert.com
  • 发布:2026-05-12 10:32
  • 更新:2026-05-12 10:33
  • 阅读:20

【报Bug】uni.chooseImage拍照时会偶发引发app崩溃而跳转到登录页面,小米16 android17均会出现该问题

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11-24H2

HBuilderX类型: 正式

HBuilderX版本号: 5.06

手机系统: Android

手机系统版本号: Android 16

手机厂商: 小米

手机机型: 小米16

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

点击拍照按钮,跳转到相机拍摄页面,此时返回上一页或者拍摄一张照片点击确定按钮

预期结果:

未拍照则退回到上一页,已拍照则拿到uni.chooseImage的返回信息并退回到原页面

实际结果:

退回到登录页面,uni.chooseImage未执行success,fail,complete中的任何一个函数

bug描述:

https://ask.dcloud.net.cn/question/102830 ,与此类问题相似,已出现很多类似情况,希望官方完整修复解决

2026-05-12 10:32 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

需要补充平台分类(安卓/ios/鸿蒙/小程序)和详细的报错信息。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

作为 DCloud 官方人员,我对这份 bug 反馈进行评审。

1. 反馈内容完整性评价

这份反馈的结构基本清晰,但在关键信息的提供上存在严重缺失,目前无法作为一份有效的缺陷报告。

  • BUG 描述:合格。描述了 uni.chooseImage 在拍照交互时会导致应用崩溃,并跳转到登录页面,同时附上了相似问题的社区链接,这有助于我们联想历史问题。
  • 代码示例不合格,缺失。这是最核心的问题。反馈中没有提供任何调用 uni.chooseImage 的代码片段。对于这类问题,代码是复现和分析的基础,例如调用的参数(countsizeTypesourceType 等)、是否在特定生命周期或异步回调中调用等,都可能是问题的关键。没有代码,我们无法入手。
  • 复现步骤:基本清晰,但缺少前置条件。步骤描述了“拍照 -> 返回”或“拍照 -> 确定”的操作。但由于没有代码,我们无法知道在什么页面、什么场景下触发了这个操作,复现存在不确定性。
  • 预期结果:合理。符合 uni.chooseImage API 的正常行为。
  • 实际结果:描述了一个严重问题。应用崩溃并跳转到登录页面,且 successfailcomplete 三个回调均未执行。这表明崩溃可能发生在进程层面,导致 JavaScript 引擎被完全终止。
  • 分类信息:基本完整。提供了 HBuilderX 版本(5.06)、操作系统(Android 17)、设备机型(小米16)、Vue 版本(Vue3)等信息。这些信息对于定位问题很有价值,特别是 “Android 17” 和 “小米16” 是非常新的系统和设备组合。

总结:当前反馈因缺失代码示例而无法被有效处理。开发者需要补充完整的、可复现问题的代码片段,这是推进问题解决的关键一步。

2. Bug 成立性分析

虽然本次反馈信息不完整,但通过知识库检索,可以确认 uni.chooseImage 在特定场景下引发崩溃的问题确实是一个反复出现的历史问题。

3. 基本概念与注意事项

  • 平台兼容性:反馈明确是 Android 平台的问题,不涉及鸿蒙或 iOS,我们不需要考虑跨平台差异。
  • API 使用方式uni.chooseImage 是一个标准的 uni-app API,在 Vue3 项目中使用是合理的。
  • 无法定位的根本原因:应用崩溃是原生层面的错误,可能由内存不足、系统API调用不兼容、权限处理异常等多种原因导致。由于 successfailcomplete 三个回调均未触发,说明崩溃发生在 JS 回调执行之前,这通常是底层引擎或原生模块的问题。

后续建议

这份反馈提供了一个有价值的新线索(Android 17 + 小米16),但当前形态无法处理。建议开发者:

  1. 补充关键信息:提供一个最小化的、可直接运行的代码示例,这对于定位和复现问题至关重要。
  2. 提供崩溃日志:如果可能,使用 Android Studio 连接设备,获取应用崩溃时的 logcat 日志,这能直接指出崩溃的堆栈和原因。
  3. 尝试临时替代方案:在等待修复期间,可以考虑去插件市场搜索“自定义相机”或“拍照”相关插件,使用原生相机插件来替代 uni.chooseImage,或许能绕过此问题。
  4. 更新反馈:请开发者在 Ask 社区 重新发布一个帖子,附上代码示例、详细操作步骤和崩溃日志,并将链接分享给我们,以便我们录入 ISSUE 系统进行跟踪处理。
内容为 AI 生成,仅供参考

要回复问题请先登录注册