描述

这个是昨天做项目,准备跑到手机上结果builder打包的时候发生的。

报错图片如下:

1b51343d96f94e9dd5b6ee9eca16e9e

具体报错信息如下:

Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ‘:app:devDebugCompileClasspath’.

分析

当时我通过一下几个步骤寻找solution。

  1. newBing
  2. 国内浏览器(CSDN)
  3. StackOverflow
  4. 大佬

尝试了很多路子但还是失败。


最后结合各方信息推断:==问题应该还是网络==。

因为据遇到这个问题的回答,基本都是因为gradle builder 的时候要引入很多国外的开源库。

但是拉不过来。

最后发现问题是我的AS代理设置的有问题。

在设置代理的时候。有 HTTP、HTTPS,Socked

我设置了前面两个,然后端口用错了。

这样我的AS就一直连不上网。

解决

image-20230403101337591

到这个地址下找到这个文件,然后把代理端口改回来。

后面就好了。

对了AS代理最好用HTTP的,因为socked这种可能Bug 不少。


我发现只有AS的界面改了很多,之前遇到有的帖子也说过改代理。

但是是在AS中setting里面改的,发现没用。

然后那个build.gradle文件也不一样。

最后还是自己去电脑下的user下找的那个文件改了才有用。

难怪当时设置代理的时候发现不行。


后来又出现一次,这次的最后解决是把build.gradle文件 恢复到Git上次了。

所以总结说就是:坑定是 build.gradle 或者网络问题。


==最大的教训就是不要随便改build.gradle这个文件里面的东西。==

哪怕是引用的版本升级,很有可能就直接给你用不了。


本质原因是那样引入一些三方库,但是这个三方库很久没有更新了,这样我们就不能通过builde.gradle 文件那样在线引入。

否则就会这样报错。

这个时候你可以把这个三方库的arr或者jar包放到AS的app目录下面的那个lib中,然后在build.gradle文件implement哪里写一个引入lib那个东西。

image-20230417200633163

怎么找jar包arr包?

  1. 来这个目录

    image-20230417202110574

  2. 找到你要的那个三方库有关的java文件image-20230417202204907

  3. 在本地资源管理器打开版本号之前的路径。image-20230417202255005

  4. 然后挨个进去找就是了image-20230417202318944

  5. image-20230417202332566

总结

在中国做开发,网络问题一直是程序员的一个大杀器。

gradle 对网络依赖很重,要妥善处理好AS的代理和编程的网络情况。

在AS代理设置成正确的HTTP以及端口之后。无论是build还是push github都好用了很多。

export https_proxy=http://127.0.0.1:33210

http_proxy=http://127.0.0.1:33210

all_proxy=socks5://127.0.0.1:33211