React Native集成Airbnb react-native-maps编译报错求助
解决react-native-maps构建报错:Could not find method compileOnly()
这个报错的核心原因是你的Gradle版本太低,compileOnly()是Gradle 2.12及以上版本才支持的依赖声明方法,而你当前使用的Gradle版本不包含这个方法,所以才会抛出找不到该方法的错误。下面是具体的解决步骤:
1. 升级项目根目录下的Gradle插件版本
- 打开项目根目录的
build.gradle文件(注意不是app模块下的),找到dependencies块里的classpath 'com.android.tools.build:gradle:x.x.x' - 将Gradle插件版本升级到至少2.12以上,比如可以选择一个稳定适配的版本(比如
3.5.4,该版本适配多数React Native 0.60+项目):dependencies { classpath 'com.android.tools.build:gradle:3.5.4' // 其他项目依赖... }
2. 匹配Gradle分发版本
- 打开
gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl为对应Gradle插件要求的分发版本:
比如Gradle插件3.5.4对应的Gradle分发版本是5.4.1,修改后内容如下:distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
3. 检查react-native-maps与React Native的版本兼容性
- 确保你安装的react-native-maps版本和当前React Native版本匹配:
- 若使用React Native 0.60+,建议安装最新稳定版的react-native-maps
- 若使用较旧的RN版本,需要安装对应兼容的旧版本(比如
0.27.1这类适配低版本RN的包)
4. 清理缓存并重新构建
- 执行以下命令清理项目缓存并重新构建:
cd android ./gradlew clean cd .. npx react-native run-android
另外,建议再检查app模块下的build.gradle依赖声明,确保react-native的依赖写法正确,比如:
implementation "com.facebook.react:react-native:+"
(旧版本RN可能用compile,但新版本建议用implementation,避免和低版本Gradle冲突)
如果以上步骤还没解决问题,可以尝试删除node_modules文件夹,重新执行npm install或yarn install后再构建项目。
内容的提问来源于stack exchange,提问作者Theodorus Agum Gumilang
相关产品推荐
相关产品推荐

