Expo SDK 45升级后执行eas build -p android遇Gradle依赖错误求助
解决Expo SDK 45 Android构建错误:Could not find method implementation() for arguments [project ':rctmgl']
错误根源
这个报错的核心原因通常有两个:一是implementation()方法被放置在了Gradle配置的错误代码块中;二是你使用的react-native-maps(对应模块:rctmgl)版本与Expo SDK 45不兼容,导致Gradle无法正确解析依赖声明。
修复步骤
1. 修正Gradle依赖声明位置
打开android/app/build.gradle文件,确认implementation(project(':rctmgl'))是写在dependencies代码块内部,而非buildscript、allprojects等其他块中。正确的写法示例:
dependencies { // 其他项目依赖 implementation(project(':rctmgl')) // 其他项目依赖 }
2. 安装与SDK 45兼容的react-native-maps版本
Expo SDK 45官方适配的react-native-maps版本为0.30.1,如果你的版本不匹配,执行以下命令调整:
npm uninstall react-native-maps npm install react-native-maps@0.30.1
3. 清理缓存后重新构建
缓存残留可能导致异常,先清理相关缓存再重试:
# 清除Expo构建缓存 eas build:clear # 清除Android本地Gradle缓存 cd android && ./gradlew clean && cd ..
之后重新执行构建命令:
eas build -p android
4. 检查Expo插件配置(若使用)
如果你通过Expo配置插件集成react-native-maps,请确保app.json或app.config.js中的配置正确,例如:
{ "expo": { "plugins": [ [ "react-native-maps", { "androidMapsApiKey": "你的Google Maps API密钥" } ] ] } }
配置完成后执行expo prebuild --clean重新生成原生文件,再进行构建。
内容的提问来源于stack exchange,提问作者Rey
相关产品推荐
相关产品推荐

