uni-app 拍照后返回上一个页面出现卡死闪退

uni-app 拍照后返回上一个页面出现卡死闪退

开发环境 版本号 项目创建方式
Windows windows 7 HBuilderX

示例代码:

uni.chooseImage({
sizeType: ['original', 'compressed'],
count: 1,
sourceType: ['camera','album'],
success: function (res) {
console.log(JSON.stringify(res));
},
fail:(err) => {
console.log(err);
}
})

操作步骤:

打包之后的app出现问题
写两到三个页面,第一个页面列表第二个页面详情,详情中有拍照功能
选择拍照然后返回,在返回,
卡死页面闪退app

预期结果:

不要出现卡死闪退

实际结果:

返回上一个页面或者上上个页面时卡死闪退

bug描述:

运行环境不受影响,代码直接同usb链接运行正常,打包之后运行出问题,路由两到三层,在拍照页面选择相机拍照或者相册选择图片,调起后不管有没有拍照或者有没有选择图片,在返回上一页面或者返回上上个页面后,app卡死,然后闪退


更多关于uni-app 拍照后返回上一个页面出现卡死闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

22 回复

问题复现不了。把有问题的DEMO示例发出来

更多关于uni-app 拍照后返回上一个页面出现卡死闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html


可能是一些别的操作影响的,我改了配置,把一些注释的去掉,把sql数据库没用的去掉,然后就可以了,反正我现在弄的不闪退了,我写了一个dome精简的只有三个页面也不出现闪退问题。所以我也不知到发啥示例出来

回复 追风草: 请问您是怎么解决的

小米note8百分闪退,

云打包吗?如果是 发下appid

回复 DCloud_Android_ST: android 8.0 打开拍照 直接返回,会闪退这个问题怎么修复?

回复 8***@qq.com: 查下崩溃日志

不仅仅在小米上,vivo和OPPO都有,是个概率性的bug,感觉和内存有关

以前也有偶尔出现闪退现象,还可以给客户解释是内存问题,这次闪退现象非常严重,操作10次,8次闪退,不知道是不是更新到最新的HbuilderX导致的,希望官网尽快给回复!

官方人员呢?QQ群让报bug。报了又不回复。能不能给个回复,

是有这样的问题,期待官方回复

打个卡顶一下,希望官方看到关注一下

打卡,希望官方看到回复一下

示例demo提供一下

直接发apk吗?还是要源码呢

回复 黄Adai: 操作相机 的代码 简单示例能复现问题就可以

回复 DCloud_Android_ST: 相机的调起都会调起app的离开和进入,之前的好像不会,

回复 追风草: 是会触发onshow和onhide

小米note8百分闪退,拍照

苹果手机也有这样的情况,拍视频完成后跳转页面出现闪退。微信直接退出,机型为iPhone xr

确实会!而且是系统10或11及更高的部分机型容易出现: 以下几个操作都会存在不规律高几率的发生闪退程序莫名崩溃: 1.chooseImage后没有拍,直接选取消返回时; 2.拍了照后,界面显示图片了,再接着继续拍过程时; 3.HbuildX已是使用最新3.1.22,本地运行跑真机很难出现崩溃复现;但是云打包出来的apk包就高几率出现程序莫名崩溃

这是一个典型的原生层与Webview层通信问题。在打包后的App中,相机组件作为原生模块与Webview存在内存管理差异。

主要原因是拍照后返回时,原生相机资源未完全释放,导致Webview路由栈出现内存冲突。建议:

  1. 添加明确的资源释放
uni.chooseImage({
  success: (res) => {
    // 处理图片后立即返回
    setTimeout(() => {
      uni.navigateBack()
    }, 100)
  },
  fail: (err) => {
    uni.navigateBack()
  }
})
  1. 使用页面生命周期管理: 在onHide或onUnload中强制清理图片缓存:
onUnload() {
  // 清理临时文件
  plus.io.resolveLocalFileSystemURL(tempFilePath, (entry) => {
    entry.remove(() => {})
  })
}
回到顶部