uni-app uni.chooseMedia在鸿蒙4.3.0.189上闪退

uni-app uni.chooseMedia在鸿蒙4.3.0.189上闪退

测试过的手机:

手机系统 手机厂商
鸿蒙4.3.0.189 华为

操作步骤:

  • 调用这个接口选择相册图片

预期结果:

  • 正常弹出相册

实际结果:

  • 点了就闪退

bug描述:

uni.chooseMedia({  
    count: 1,  
    mediaType: ['image'],  
    sizeType: ['original', 'compressed'],  
    sourceType: ['album', 'camera'],  
    success: function (res) {  

    }  
})
  • 鸿蒙4.3.0.189上调用这个代码选择图片,弹出“相机和相册”选择弹窗后,点击相册,百分百闪退。

更多关于uni-app uni.chooseMedia在鸿蒙4.3.0.189上闪退的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

该bug反馈内容基本完整但可优化:描述清晰说明了鸿蒙4.3.0.189上调用uni.chooseMedia点击相册闪退的现象,代码示例完整可直接运行,复现步骤明确但未说明是否真机测试及具体机型。分类信息包含HBuilderX 4.87 Alpha版、Vue3等关键信息,但缺少错误日志和是否尝试过基础排查(如空白工程测试)。
经知识库验证,bug成立可能性高:

知识库明确uni.chooseMedia在HarmonyOS需HBuilderX 4.31+支持(兼容性说明),用户版本4.87满足要求,排除版本不兼容
鸿蒙平台常见问题包括配置缺失,知识库提示需检查harmony-configs/build-profile.json5中"useNormalizedOHMUrl": true设置(运行问题排查)
类似闪退现象在低端安卓机因系统内存回收导致(分析报告),鸿蒙设备可能存在同类内存管理问题

建议用户:

确认build-profile.json5配置正确
尝试用nvue页面+自定义相册插件替代
检查DevEco日志筛选Warn级别错误
更新至最新HBuilderX正式版验证(当前alpha版可能存在未修复问题) 内容为 AI 生成,仅供参考

更多关于uni-app uni.chooseMedia在鸿蒙4.3.0.189上闪退的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


测试了几台机器,是特定的机器、机型报错,还是大面积报错,先自查空白工程是否正常,目前信息不完整,无法复现你的 问题。

在鸿蒙4.3.0.189系统上调用uni.chooseMedia选择相册图片时出现闪退,这通常是由于系统兼容性或权限问题导致的。以下是可能的原因和解决方案:

  1. 权限配置问题:确保在manifest.json中正确配置了相册和相机权限。对于鸿蒙系统,需要添加以下权限:

    {
      "app-plus": {
        "distribute": {
          "android": {
            "permissions": [
              "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
              "<uses-permission android:name=\"android.permission.CAMERA\"/>"
            ]
          }
        }
      }
    }
    
  2. 系统兼容性:鸿蒙4.3.0.189可能存在与uni-app底层调用的系统API不兼容的情况。可以尝试以下方法:

    • 更新uni-app框架到最新版本,确保兼容性优化。
    • 使用条件编译针对鸿蒙系统降级到uni.chooseImage接口(如果功能允许):
      // #ifdef HARMONYOS
      uni.chooseImage({
        count: 1,
        success: (res) => {
          // 处理图片
        }
      });
      // #endif
      
  3. 临时规避方案:如果闪退仅发生在选择“相册”时,可以暂时将sourceType设置为只使用相机:

    uni.chooseMedia({
      sourceType: ['camera'], // 仅用相机
      // 其他参数不变
    });
回到顶部