1、概述
每回升级android studio 都要痛苦一会,只是这次是大痛了。整整搞了一天+。本来是预感到问题了,恰巧3.1.4把这个配置给隐藏了。找的好痛苦。
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath':
Unable to resolve dependency for ':libraries:lib_qrcode@debug/compileClasspath': Could not download core.jar (com.google.zxing:core:3.3.3)
Open
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
2、结论(先上结果)
1、android studio 老版本的梯子代理,设置了后,是体现在项目的gradle.properties里。
systemProp.https.proxyPort=1080
systemProp.http.proxyHost=127.0.0.1
systemProp.https.proxyHost=127.0.0.1
systemProp.http.proxyPort=1080
然后有个老问题就是加载插件(gradle版本升级, android studio plugin安装)的时候 不得不开代理。但是加载普通的依赖库的时候,开着代理有时候拉不到最新版本的库,反而只能配置低版本点的依赖库才能拉到。(这里也是 采坑经验)(此次版本更新就又神坑在这里了)
2、android studio 3.1+ 把这四行尴尬的代码位置移动了,移动了,移动了。 移动到 .gradle/ 目录去了。这四行代码放在了 .gradle目录下的 gradle.properties 文件里了。所以库依赖不出来的时候,进去删了这四行代码就可以。(因为一开始没找到这4行代码 虽然踩过坑还是被坑惨了)
- mac的.gradle目录在用户目录,cd ~
- mac 看隐藏目录快捷键:shift + cmd + >
- win 的.gradle目录在C:\Users\Administrator.gradle
3、问题发生的前提
- 首先我的网速是够用的
- 我的翻墙梯子shadowsocks 也是正常的
- android studio 使用代理,我喜欢用这种方式:其中shadowsocks设置为自动代理
4、问题形式
因为项目里的库很多,一开始的时候是体现在zxing的库拉不到提示:
Unable to resolve dependency for ':libraries:lib_qrcode@debug/compileClasspath': Could not download core.jar (com.google.zxing:core:3.3.3)
后来注释掉zxing, 又发现:
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
发现这个问题的时候,就觉得大条了,把1.1.3回退到1.1.2这个库是可以加载的。第一时间就去项目工程里找前面提到的四行代理代码了。可是因为被移动了,没找到,开始猜测是其它问题。
以为是升级as 的问题,然后搜了很久谷歌,各种方式都试了一遍。主要还是把问题定位在网络不行,翻墙不成功上,越折腾问题越多,基本项目就完全不行了(主要也是库多),各种问题都体现出来完全抓狂:
org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://dl.google.com/dl/android/maven2/com/jfrog/bintray/gradle/gradle-bintray-plugin/1.7.3/gradle-bintray-plugin-1.7.3.pom'.
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath':
Unable to resolve dependency for ':libraries:lib_qrcode@debug/compileClasspath': Could not download core.jar (com.google.zxing:core:3.3.3)
Open
Unable to resolve dependency for ':libraries:lib_qrcode@debug/compileClasspath': Could not download core.jar (com.google.zxing:core:3.3.0)
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.3.
接着就是无脑重装 AS,清理mac 里的AS库,然后就越错越远,连gradle 都直接加载不出来了:
> Could not resolve com.android.tools.build:gradle:3.1.4.
> Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom'.
> Could not GET 'https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/3.1.4/gradle-3.1.4.pom'.
> Read timed out
最后没办法了,因为我的win 下面环境是可以的,去win 下面copy .gradle文件夹的时候发现 四行代码移位到这里来了。按历史踩坑经验把这四行代码删除了,一切问题解决了。
5、总结教训
设置代理利于更新gradle版本和plugin,但是会影响很多依赖库的加载,这个是历史踩过的坑。所以最简单的方式就是,以后不要使用AS里设置代理的方式去操作。需要代理的时候,开启shadowsocks 的全局模式。事情就没那么多