React Native Android构建报错:资源文件名含非法字符'-'
解决React Native新项目复制源码后Android构建资源文件名报错问题
问题根源
原项目与新项目的Android Gradle插件(AGP)版本不一致,新版本AGP默认启用了更严格的资源文件名规则,禁止使用'-'这类非允许字符,而旧版本未强制校验该规则。
可行解决方案
- 重命名资源文件:将所有含'-'的资源文件(如
abc-def.png、map-marker.png)替换为下划线格式(abc_def.png、map_marker.png),同时同步修改代码中对应的资源引用路径,保证引用匹配。 - 关闭严格校验规则:在
android/app/build.gradle文件中添加配置,禁用AGP的资源文件名严格校验:
保存后重新执行构建命令即可。android { ... androidResources { allowUnsafeResourceNames = true } } - 降级AGP版本:将新项目的AGP版本调整至与原项目一致,修改
android/build.gradle中的classpath版本:
注意同步Gradle wrapper版本,确保两者兼容。buildscript { dependencies { classpath "com.android.tools.build:gradle:原项目对应的AGP版本号" } }
内容的提问来源于stack exchange,提问作者Engr.Aftab Ufaq
相关产品推荐
相关产品推荐

