React Native编译报错::react-native-community_art:compileDebugJavaWithJavac失败求助
执行命令cd android && ./gradlew installDebug构建并安装应用时失败,错误信息如下:
Task :react-native-community_art:compileDebugJavaWithJavac 执行失败
/Users/hadang/Documents/mobile-app/node_modules/@react-native-community/art/android/src/main/java/com/reactnativecommunity/art/ARTShapeShadowNode.java:25: 错误:找不到符号
import static com.facebook.react.common.ArrayUtils.copyArray;
^
符号: 类 ArrayUtils
位置: 包 com.facebook.react.common
/Users/hadang/Documents/mobile-app/node_modules/@react-native-community/art/android/src/main/java/com/reactnativecommunity/art/ARTShapeShadowNode.java:25: 错误: 仅能从类或接口进行静态导入
import static com.facebook.react.common.ArrayUtils.copyArray;
^
注意: 部分输入文件使用或覆盖了已过时的API。
注意: 使用 -Xlint:deprecation 重新编译以获取详细信息。
2个错误
环境信息
- Node版本: v20.3.0
- Java版本:
- openjdk 17.0.9 2023-10-17 LTS
- OpenJDK运行时环境 Zulu17.46+19-CA (build 17.0.9+8-LTS)
- OpenJDK 64位服务器虚拟机 Zulu17.46+19-CA (build 17.0.9+8-LTS, 混合模式, 共享)
- React-native版本: 0.73.0
- React-native-navigation版本: 7.32.0
方案1:修复依赖兼容性
该错误源于React Native 0.73将ArrayUtils的包路径从com.facebook.react.common迁移到了com.facebook.react.utils,而@react-native-community/art未适配该变更,可按以下步骤修复:
- 打开文件
node_modules/@react-native-community/art/android/src/main/java/com/reactnativecommunity/art/ARTShapeShadowNode.java - 将第25行的导入语句修改为:
import static com.facebook.react.utils.ArrayUtils.copyArray; - 安装
patch-package持久化修改:npm install patch-package --save-dev - 生成补丁文件:
后续执行npx patch-package @react-native-community/artnpm install时,补丁会自动应用,无需重复修改。
方案2:移除过时依赖
如果项目不需要@react-native-community/art库,直接卸载即可:
npm uninstall @react-native-community/art
同时移除项目中所有对该库的引用代码。
方案3:检查间接依赖并升级
若为其他依赖间接引入@react-native-community/art,先查看依赖树:
npm ls @react-native-community/art
找到对应的依赖包,升级到兼容React Native 0.73的版本。
内容的提问来源于stack exchange,提问作者Hà Nguyễn Đăng

