uni-app 部分安卓手机选择相册图片时APP闪退

uni-app 部分安卓手机选择相册图片时APP闪退

示例代码:

export const chooseImageAsync = (options = {}) => {  
  const { maxCount = 1, extensions = ['jpeg', 'jpg', 'png'] } = options  
  return new Promise((resolve, reject) => {  
    uni.chooseImage({  
      count: maxCount,  
      extension: extensions,  
      sizeType: ['original'], // 指定原图  
      sourceType: ['album'], // 从相册选择  
      success:  (res) => resolve(res)  
    })  
  })  
}

操作步骤:

部分安卓选择相册图片闪退

预期结果:

不闪退

实际结果:

闪退

bug描述:

问题描述

问题来源是实际用户找客服反馈的,而且内部之前也反馈过几次,选择相册图片闪退的问题,整体闪退概率不高,但是确实存在
点击选择相册后,还没有进入相册页面就闪退了,详细版本见截图

UNI 统计「错误分析」功能建议

  1. 缺少APP Crash 统计,希望增加相应统计,以及完善采集信息,例如Crash的时候可以知道,设备机型,Uni版本,Plus版本,堆栈信息,是原生问题,weex问题,uni问题,还是 js 本身问题
  2. 目前 错误分析缺少源码信息,业务侧无法定位问题,建议增加 source map相关,允许开发自行上传

近7天错误显示见截图

alt text

alt text


更多关于uni-app 部分安卓手机选择相册图片时APP闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

补充一下友盟那边捕获的异常数据

更多关于uni-app 部分安卓手机选择相册图片时APP闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题有解决吗

这是一个典型的Android权限或内存问题。在部分Android机型上,相册选择闪退通常由以下原因导致:

  1. 内存不足:选择高分辨率图片时,系统内存不足导致应用崩溃。建议在chooseImage中设置sizeType: ['compressed']来压缩图片,避免直接使用原图。

  2. 存储权限问题:虽然uni-app会自动处理权限,但部分Android机型仍需确保android.permission.READ_EXTERNAL_STORAGE权限已正确获取。可以在调用前通过uni.authorize显式申请权限。

  3. 系统相册兼容性:部分Android厂商定制系统对相册访问存在限制。可尝试增加超时处理:

const timer = setTimeout(() => reject(new Error('timeout')), 10000)
uni.chooseImage({
  // ...参数
  success: (res) => {
    clearTimeout(timer)
    resolve(res)
  },
  fail: (err) => {
    clearTimeout(timer)
    reject(err)
  }
})
回到顶部