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

React Native构建报错:无法访问internal的serviceOf及引用类型不匹配

React Native构建脚本编译错误修复方案

问题详情

构建React Native项目时出现两处脚本编译错误:

  • /node_modules/@react-native/gradle-plugin/build.gradle.kts:10:49:无法访问serviceOf,它是org.gradle.configurationcache.extensions中的internal(内部)成员
  • /node_modules/@react-native/gradle-plugin/build.gradle.kts:45:11:未解析引用,接收者类型不匹配,候选方法均不适用

异常类型:ScriptCompilationException,包含上述两处ScriptCompilationError
当前环境:react-native 0.72.5、gradle 8.0.1、node V20、jdk 11

原因分析

React Native 0.72.5的gradle-plugin依赖了Gradle的内部APIserviceOf,而Gradle 8.x版本对内部API的访问权限做了严格限制,导致编译时无法访问该方法,引发错误。

解决方案

1. 降级Gradle到兼容版本(推荐)

React Native 0.72.x官方适配的Gradle版本为7.5,降级操作如下:

  • 打开android/gradle/wrapper/gradle-wrapper.properties文件
  • 将distributionUrl修改为:
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
    
  • 同步Android项目后重新执行构建命令

2. 升级React Native到适配Gradle 8.x的版本

React Native 0.73及以上版本已适配Gradle 8.x,可按照官方升级步骤将项目升级到对应版本,从根源解决API兼容问题。

3. 临时补丁修复(应急方案)

若暂时无法降级Gradle或升级RN,可临时修改gradle-plugin的代码:

  • 找到/node_modules/@react-native/gradle-plugin/build.gradle.kts的第10行和第45行
  • 将serviceOf<T>()替换为project.services.get<T>()
  • 注意:该修改会在执行npm install后被覆盖,建议使用patch-package工具生成持久化补丁,避免重复修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 06:45:58