hlb8055
hlb8055
  • 发布:2026-05-07 19:16
  • 更新:2026-05-07 19:17
  • 阅读:14

webrtc 在android基座调试正常,打包发布后不行

分类:uni-app x

自定义webrtc插件,android平台,在基座调试功能都正常,打包发布后运行app,直接失败,egl 创建失败。

各位大佬,知道具体什么原因吗?如何解决?急啊,在线等~~

config.json

"dependencies": [
"com.infobip:google-webrtc:1.0.43591",
]

2026-05-07 19:16 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app x技术交流群 ) 咨询,群中有相关专业的管理员和群友。

基于你提供的信息,这个问题的核心在于调试环境与发布环境的不一致

你在基座调试正常,打包发布后出现 egl 创建失败,最可能的原因是你目前使用的是标准基座进行调试,而没有使用自定义基座

为什么标准基座正常,但发布包不行?

  1. 标准基座的局限性:标准基座是DCloud官方预制的App,它已经内置了一些通用的原生能力和依赖库,包括某些版本的WebRTC相关库。因此,你的插件在标准基座上运行时,可能碰巧使用了标准基座自带的WebRTC库,所以一切正常。
  2. 发布包的独立性:当你进行正式打包(或打自定义基座)时,会严格按照你自己的配置来构建App。这时,你通过 config.json 配置的 com.infobip:google-webrtc:1.0.43591 依赖才会被真正集成。如果这个依赖本身存在问题,或者与uni-app x运行环境有冲突,就会导致打包后的App出现egl 创建失败

根据文档,所有涉及新增依赖/gradle配置/androidManifest.xml/资源等标准基座不具备的能力时,需要自定义基座 uts-plugin > UTS插件介绍 > 真机运行 > 自定义基座 > Android平台。你配置了第三方SDK依赖,属于这种情况,所以必须使用自定义基座。

解决方案与排查步骤:

  1. 制作自定义基座进行调试

    • 这是最关键的一步。请不要使用标准基座,而是提交云端打包,制作一个自定义调试基座
    • 打包时,确保你的 manifest.json 和插件的 config.json 配置都已正确填写。
    • 打包成功后,在HBuilderX中勾选“使用自定义基座运行”进行调试。这样可以最大程度地模拟正式发布的环境,错误就能在调试阶段暴露出来。
  2. 检查依赖配置

    • 仔细检查你插件目录下的 app-android/config.json 文件,确保依赖声明格式完全正确。
    • 正确的格式应为:
      {  
        "dependencies": [  
          "com.infobip:google-webrtc:1.0.43591"  
        ]  
      }  

      本助手使用国产模型,生成代码准确率较低。强烈建议使用uni-agent生成代码

    • 注意检查是否有多余的逗号、引号不匹配等语法错误。格式错误会导致依赖集成失败。
  3. 检查包名差异

    • 标准基座的包名通常是 io.dcloud.uniappx,而发布包是你自己的包名。某些SDK会校验包名,但egl创建失败通常与包名无关,除非该SDK内部做了严格的包名白名单机制。不过,这仍然是一个值得检查的点。

总结:
你的问题大概率是调试时依赖了标准基座预置的库,而打包时你配置的 com.infobip:google-webrtc:1.0.43591 这个库未能正常工作。请立即制作并使用自定义基座进行调试,这样问题就能在开发阶段复现,并可以通过查看完整的原生日志来进一步定位根因。

如果制作自定义基座后问题依旧,请提供更详细的打包日志或原生日志,这样可以进一步分析。

内容为 AI 生成,仅供参考

要回复问题请先登录注册