使用eas build构建Expo React Native Android APK时Gradle构建失败
解决Expo构建Android时react-native-picker的Gradle compile()方法报错问题
问题原因
Gradle 7.x及以上版本已废弃compile()依赖配置语法,统一使用implementation()或api()替代。旧版react-native-picker的Android构建脚本仍在使用已淘汰的compile(),导致eas build -p android执行到Run gradlew阶段时触发方法找不到的错误。
解决方案
方案1:升级到官方维护的兼容版本(优先推荐)
原react-native-picker已停止维护,官方推荐使用@react-native-picker/picker替代:
- 卸载旧依赖:
npm uninstall react-native-picker - 安装兼容版本:
npm install @react-native-picker/picker - 同步依赖后重新执行构建:
eas build -p android
方案2:手动修改依赖配置(临时解决,不推荐)
找到项目内node_modules/react-native-picker/android/build.gradle文件,将第25行的compile()替换为implementation():
原代码示例:
compile 'com.facebook.react:react-native:+'
修改后:implementation 'com.facebook.react:react-native:+'
修改完成后重新执行eas build -p android。
方案3:用patch-package永久固化修改(推荐用于必须保留旧依赖的场景)
- 安装patch-package工具:
npm install patch-package --save-dev - 按方案2的方法修改
react-native-picker的gradle配置 - 生成补丁文件:
npx patch-package react-native-picker - 将生成的
patches/react-native-picker+[对应版本号].patch文件提交到版本控制 - 后续执行
npm install后补丁会自动应用,再执行eas build -p android即可
内容的提问来源于stack exchange,提问作者Jeevake Perera
相关产品推荐
相关产品推荐

