React Native运行Android报错:Could not find method google() for arguments []
解决React Native构建时
Could not find method google()的错误 我来帮你搞定这个构建失败的问题,先理清楚前因后果:
你的环境配置
react: "16.3.1"react-native: "0.55.4"react-native-camera: "^1.1.3"react-native-qrcode-scanner: "^1.0.1"
问题场景
你在项目目录执行了这条命令:
react-native run-android
结果遇到了构建失败,错误详情如下:
扫描/Users/Desktop/reactnativeapps/qrcodescaner/node_modules中的符号链接(耗时9ms),JS服务器已启动。正在设备上构建并安装应用(执行命令:cd android && ./gradlew installDebug)...
失败:构建过程抛出异常。
- 位置:构建文件'/Users/Desktop/reactnativeapps/qrcodescaner/android/build.gradle'第6行
- 问题:评估根项目'qrcodescaner'时出现错误。Could not find method google() for arguments [] on repository container.
- 建议:使用--stacktrace选项查看堆栈跟踪,使用--info或--debug选项获取更多日志输出。
构建失败
问题根源
google()这个简洁的仓库引用方式,是Gradle 4.0+和Android Gradle Plugin 3.0+才支持的新语法。而你用的React Native 0.55.4版本比较老,对应的Gradle版本还不认识这个方法,所以得换成完整的Google Maven仓库地址才行。
具体修复步骤
打开项目根目录下的android/build.gradle文件,做以下修改:
- 找到
buildscript块里的repositories配置,把里面的google()替换成完整的maven仓库配置 - 再找到
allprojects块里的repositories配置,同样替换掉google()
替换后的关键代码片段如下:
buildscript { repositories { jcenter() // 把google()换成这个 maven { url 'https://maven.google.com/' name 'Google' } } // 这里保留你原来的dependencies等配置 } allprojects { repositories { mavenLocal() jcenter() maven { url "$rootDir/../node_modules/react-native/android" } // 同样替换google() maven { url 'https://maven.google.com/' name 'Google' } } }
改完之后,重新执行react-native run-android,这个构建错误应该就能解决了。
内容的提问来源于stack exchange,提问作者Kavya Sree
相关产品推荐
相关产品推荐

