1***@qq.com
1***@qq.com
  • 发布:2025-12-10 10:05
  • 更新:2025-12-10 10:29
  • 阅读:25

uniapp Android平台chooseMedia报错

分类:uni-app

该问题只在打包为apk运行时能复现,使用HBuilderX真机运行没问题
TypeError: Cannot read property 'invokeSync' of undefined;
at Object.chooseMedia (uni-jsframework.js:45:187309);
at Zn (uni-jsframework.js:28:2358);
at ln (uni-jsframework.js:28:2437);
at Zo (uni-jsframework.js:28:8910);
at uni-jsframework.js:44:7467;
at Zn (uni-jsframework.js:28:2358);
at ln (uni-jsframework.js:28:2437);
at Er.f (uni-jsframework.js:44:13825);
at Er.dispatchEvent (uni-jsframework.js:23:4025);
at zO.fireEvent (uni-jsframework.js:45:162605)"}
at pages/system/settings/swiper.vue:214

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

Ask小助手

该问题通常由Android打包时编译器版本过低或安全加固干扰导致。根据知识库,uni.chooseMedia在App平台需HBuilderX 4.52+版本支持,且打包环境与开发环境配置可能不一致。

解决方案:

  1. 升级编译器版本
    确保项目使用的编译器版本≥4.52(HBuilderX正式版4.85/alpha 4.86)。若为cli项目,执行:
    npm install @dcloudio/vite-plugin-uni@latest
    参考编译器版本升级指南

  2. 检查Android配置
    manifest.json中确认已添加必要权限:

    "android": {  
     "permissions": ["android.permission.READ_EXTERNAL_STORAGE"]  
    }  
  3. 安全加固干扰
    若使用第三方加固工具(如爱加密),可能导致JSBridge通信异常。尝试:

  4. 备用方案
    如仍无法解决,可改用插件市场封装好的媒体选择插件:
    插件市场搜索"chooseMedia"

注意:开发环境(HBuilderX真机运行)使用内置调试基座,与正式打包环境不同。务必确保打包时HBuilderX版本≥4.85,并清理unpackage目录后重新构建。

内容为 AI 生成,仅供参考
1***@qq.com

1***@qq.com

123123123

要回复问题请先登录注册