Ubuntu下React Native项目构建失败:groovy.json.JsonException报错求助
问题描述
在Ubuntu 22.04.3 LTS(64位)系统搭建React Native项目时,执行构建出现以下错误:
FAILURE: Build failed with an exception. 位置:脚本'/home/ravi/react-native/vrnative/node_modules/@react-native-community/cli-platform-android/native_modules.gradle'第250行 问题原因:脚本评估时发生错误。 调用[node, /home/ravi/react-native/vrnative/node_modules/@react-native-community/cli/build/bin.js, config]时抛出异常,错误信息:groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object 当前读取的字符为'i',int值为105,行号1,索引0,提示使用--verbose flag获取更多详情。 构建2秒后失败,提示安装应用失败,请确保Android开发环境已配置,命令执行失败:./gradlew app:installDebug -PreactNativeDevServerPort=8081
已尝试的操作:
- 删除node_modules和package-lock.json后执行
yarn install、yarn android - 执行
./gradlew clean并删除build文件夹 - 移除gradle中的
apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)代码
技术栈版本:
- Node: v20.17.0
- Yarn: 1.22.22
- npm: 10.8.2
- watchman: 4.9.0
- react-native-cli: 2.0.1
- react-native: 0.69.8-1
解决方案
1. 切换兼容的Node.js版本
React Native 0.69.x系列官方仅支持Node.js 14.x/16.x版本,Node 20版本过高会引发兼容性问题,导致config命令返回非合法JSON:
# 用nvm安装并切换到Node 16.x(需先安装nvm) nvm install 16 nvm use 16
2. 彻底清理并重新构建
切换Node版本后,清理所有残留文件再重新安装依赖:
rm -rf node_modules package-lock.json yarn.lock yarn install cd android && ./gradlew clean cd .. && yarn android
3. 检查config命令输出
手动执行报错中的命令,确认返回内容是否为合法JSON:
node /home/ravi/react-native/vrnative/node_modules/@react-native-community/cli/build/bin.js config
如果返回的是错误信息(比如开头为'i'的提示),说明依赖安装不完整,需查看yarn install日志,解决依赖冲突或网络问题。
4. 恢复gradle原生模块配置
之前移除的native_modules脚本是React Native处理原生模块的必要配置,需在android/app/build.gradle中恢复:
apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
确保路径与你的项目目录结构匹配。
5. 验证Android环境配置
- 确认SDK Build Tools版本为30.0.2(React Native 0.69.x要求)
- 检查
ANDROID_HOME环境变量是否正确设置 - 若存在网络问题,检查
~/.gradle/gradle.properties中的代理或镜像配置是否有效
内容的提问来源于stack exchange,提问作者Ravi Vardhan
相关产品推荐
相关产品推荐

