Expo EAS构建报错:包名含Java关键字'native'无效,求兼容方案
包名含Java关键字触发EAS构建报错的解决办法
临时绕开校验(适合已上线、不能改包名的应用)
- 编辑项目根目录的
eas.json,在对应的构建profile里添加Gradle配置,禁用包名关键字校验:
EAS构建默认开启了比经典构建更严格的Lint校验,这个配置直接关掉"build": { "production": { "android": { "buildGradleExtraProps": { "android": { "lintOptions": { "disable": "InvalidPackage" } } } } } }InvalidPackage规则,就能跳过包名里的关键字检查。
长期兼容方案(推荐给可调整包名的场景)
- 给包名里的
native做个小修改,比如换成nativeapp、natv或者native_(Java允许下划线作为包名部分),比如把com.mycompanyname.native.appname改成com.mycompanyname.nativeapp.appname。 - 如果是已上线应用,改包名后需要重新创建版本,但只要保留原有签名,用户能正常收到更新。
测试建议
- 先跑本地构建验证:执行
eas build --local --platform android,确认没问题再触发远程构建,省得白跑流程。
内容的提问来源于stack exchange,提问作者Aamir J
相关产品推荐
相关产品推荐

