运行React Native Android项目时构建失败求助
看来你在运行react-native run-android时碰到了react-native-reanimated的构建报错,还涉及到Cp65001编码问题,我帮你整理了几个针对性的解决办法:
1. 统一项目编码配置
Cp65001其实是Windows系统下UTF-8的别名,这个错误大多是文件编码不匹配导致的。你可以在项目根目录的android/gradle.properties文件中添加编码相关配置,强制Gradle使用UTF-8:
android.useAndroidX=true android.enableJetifier=true org.gradle.jvmargs=-Dfile.encoding=UTF-8
同时,你可以打开报错的C:\tmpProjets\beetv-app\node_modules\react-native-reanimated\android\build.gradle,查看第58行附近的代码,如果是处理资源或读取文件的逻辑,确保它也遵循UTF-8编码规范。
2. 清理缓存并重装依赖
缓存堆积经常会引发奇怪的构建问题,试试执行以下步骤彻底清理:
# 清除npm缓存 npm cache clean --force # 删除依赖目录和锁文件 rm -rf node_modules package-lock.json # 重新安装依赖 npm install # 清理Android构建缓存 cd android && ./gradlew clean cd ..
之后再重新运行react-native run-android,如果之前Jetifier的处理可能有冲突,也可以尝试禁用它测试:
react-native run-android --no-jetifier
⚠️ 注意:如果项目依赖的第三方库还没迁移到AndroidX,禁用Jetifier可能会引发其他兼容性问题,先测试这个选项是否能解决当前报错。
3. 适配react-native-reanimated版本
可能是当前使用的reanimated版本和你的React Native版本不兼容。先通过react-native -v查看你的RN版本,再确认reanimated的兼容版本(比如RN 0.70+建议使用reanimated 2.x或3.x的稳定版):
# 卸载当前版本 npm uninstall react-native-reanimated # 安装兼容的稳定版,比如2.14.4 npm install react-native-reanimated@2.14.4
安装完成后,记得执行cd android && ./gradlew clean清理Android缓存,再重新运行项目。
4. 临时调整reanimated的Gradle配置(应急方案)
如果前面的方法都没效果,可以临时修改报错的reanimated build.gradle文件,在其中添加编码强制配置:
打开C:\tmpProjets\beetv-app\node_modules\react-native-reanimated\android\build.gradle,在合适的位置添加:
tasks.withType(JavaCompile) { options.encoding = "UTF-8" }
⚠️ 注意:修改node_modules里的文件不是长久解决方案,后续重新安装依赖会覆盖这个修改,所以最好还是通过前面的版本适配或全局编码配置彻底解决。
内容的提问来源于stack exchange,提问作者Lyov Ghukasyan

