首次配置fastlane执行fastlane test时找不到com.android.tools.build:gradle:3.0.1
解决fastlane执行
fastlane test找不到com.android.tools.build:gradle:3.0.1的问题 我之前也碰到过一模一样的情况——Android Studio能正常构建,但fastlane跑测试就报依赖找不到,核心原因是两者的仓库配置不一致。Android Studio默认会自动配置Google的Maven仓库,还会优先用本地缓存的依赖,但fastlane默认可能只去jcenter拉取,而gradle 3.0.1已经不在jcenter提供了。
试试下面这几个步骤:
1. 检查并修改项目根目录的build.gradle
打开项目根目录下的build.gradle文件,确保buildscript和allprojects的repositories里都添加了Google的Maven仓库:
buildscript { repositories { // 老版本gradle可以替换成 maven { url 'https://maven.google.com' } google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' } } allprojects { repositories { google() jcenter() } }
2. 让fastlane使用项目的Gradle Wrapper
在你的Fastfile里,确保gradle任务配置了use_gradle_wrapper: true,这样fastlane会使用项目自带的gradle wrapper,和Android Studio用的是同一套构建环境:
lane :test do gradle( task: 'test', use_gradle_wrapper: true, // 可根据需求添加其他参数,比如 build_type: "Debug" ) end
3. 清理缓存并重新同步依赖
如果上面两步做完还是不行,试试执行以下命令清理本地缓存并强制刷新依赖:
./gradlew clean build --refresh-dependencies
完成后再重新运行fastlane test。
至于为什么Android Studio能正常构建?因为它默认已经把Google仓库加入了配置列表,而且会优先读取本地已经下载好的依赖缓存,而fastlane如果没配置正确的仓库源,就只会去jcenter查找,自然找不到这个版本的gradle插件。
内容的提问来源于stack exchange,提问作者Tin Man
相关产品推荐
相关产品推荐

