You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非Expo React Native项目集成expo-av后Android构建报错

错误原因

你混淆了两个完全不同的概念:

  • 报错信息中提到的「包声明」是Java文件的全局声明语句,必须写在MainApplication.java所有有效代码的最顶部,格式为package 你的应用包名;,是Java语法要求的文件所属包标识
  • 你搜索到的26处package相关匹配都是React Native框架中ReactPackage类相关的变量名,和报错要求的Java文件包声明无关

react-native-unimodules的gradle脚本需要读取MainApplication.java顶部的包声明获取你的应用包名,用来生成配套配置,当它的正则匹配逻辑无法识别到合法的包声明行时,就会抛出这个错误。

解决方案

按优先级依次尝试以下操作:

  • 检查MainApplication.java的内容,确认所有注释、空行之后的第一行有效代码是正确的包声明,格式严格为package 你的应用ID;,注意结尾必须带分号,前面不能有任何非注释类代码。如果之前修改文件时误删了这一行,补全即可,包名和你app/build.gradle中applicationId的取值保持一致。
  • 如果包声明本身是正确的,可能是包声明前的多行注释、特殊符号导致脚本识别失败,把包声明行直接挪到文件的最开头,放在所有注释、import语句的前面,即可解决识别问题。
  • 如果上述操作都无效,可以手动指定包名跳过自动识别逻辑:在android/app/build.gradle的project.ext.react配置块中添加如下配置:
project.ext.react = [
  // 保留你原本的其他配置
  unimodulesPackageName: "替换为你的应用包名"
]

配置完成后重新构建即可。

额外说明:如果你的React Native版本在0.64及以上,现在安装expo-av不需要完整配置react-native-unimodules,直接安装expo-modules-core和expo-av即可,配置流程更简单,也不会出现这类识别问题。

内容的提问来源于stack exchange,提问作者ofundefined

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:36:03