成功解决Unable to resolve dependency、classpath等所有有关环境配置的问题

(第一次写文章,我经验也不足,根据自己的理解来向大家解释一下)

先说一说今天被折磨一整天的感悟:

当项目导入、运行爆红时,一个劲百度出现的错误和解决方案,可能不是最先做的事。

加深对于项目运行过程的理解,才是治本的方法

刚刚导入一个别人的项目,或者把别人的代码移植进来,大概率会一片爆红,因为“环境配置”不一样。

对于这种Sync时出错的事情,一定要往“环境配置”四个字上去找原因。

环境配置,无非是网络配置和下面这四个gradle文件:

先说网络配置

相信点开这篇文章的同学都已经过了unable to find valid certification这一关,成功为自己的项目配置好了阿里云仓库等镜像网站。我们知道Android Studio是对网络依赖很强的软件,只要想让一个项目运行起来,必须要常常download和sync(同步),需要从谷歌的网页里获取很多内容才能让项目跑起来,提供这些资源网站的入口代码,就叫“源”。
这两个框里的网址就是源,maven里的是阿里云镜像
但是由于墙的存在,我们没法访问google和jcenter等网站,于是有了阿里云镜像库。

所谓镜像就是,阿里巴巴会定期把google()和jcenter()资源库里所有的东西拿过来,放到自己这里,我们进阿里云就可以达到获取运行资源的目的了,接下来我都是设置阿里云镜像和不翻墙情况下运行的。
此外,少部分时候资源文件都是比较分散的,有的依赖库在阿里有,但是有的可能就没有了,所我们只准备一个阿里可能还无法完全解决问题,除了阿里的源,还建议大家加上
jcenter {
url “http://jcenter.bintray.com/”
}
mavenCentral()
maven { url “https://jitpack.io” }
等源地址,并且可以尝试调整源的先后顺序。比如我有一个navigation的依赖无法添加,百度了之后把上面的jcenter.bintray放到阿里云的源之前,sync一下,就添加成功了。
但是,由于镜像源不可能做到和google()实时同步,因此存在一定的版本落后现象。比如有一个资源,提示已经有2.0版本了,但是sync一下爆红,下载不了,完蛋,那是因为这个资源在镜像网站中还没有这么新的版本,可能只有1.9,Anrdoid stuido在镜像里找不到2.0这个资源,就去google里面找了,又因为被墙,所以爆红了

有同学说我翻墙还不行吗?
翻墙会导致proxy代理问题,这也是常常出现的问题,关于代理、端口等概念我的理解还差得远,就不解释了。
这里放一下我的情况:翻了墙,设置了代理,仍然不行,而且翻墙会导致http proxy和全局gradle.properties文件设置改变,变了就很难改回来了,所以我不敢去翻墙运行软件

所以说!很多时候把依赖的版本降低一些,让AS能在镜像中找到资源,问题就解决了。

我这次解决问题的一个环节就是,把gradle.properties(module:app)中最下面的dependency项中标黄的版本改低了,原来是1.1.3,爆红提示unable to resolve dependency,改成1.1.0就可以了
比如这个
所以说,碰到无法解决依赖库问题时,可能是网络问题,可以考虑依赖版本是否太“新”了,把依赖版本逐渐改低,再尝试

接下来是Gradle方面的配置,完成这几个配置后,你将畅通无阻的进行项目运行!

首先,请你明确这3个东西:

1. 你的Android Studio版本、Gradle版本是多少?
2. 你的SDK tools版本是多少?
3. 你的SDK build tools版本是多少?

以上三者缺一不可!

新建一个项目,在build gradle(project)中可以看到gradle版本被默认设置为一个数字(这就是你的Gradle版本),这同时也是你的Android Studio软件版本
在这里插入图片描述
左上角打开file>settings>system setings>Android SDK >SDK tools,注意不要隐藏淘汰包(obesolete packages),同时要勾选show details
在这里插入图片描述
在这里插入图片描述

我的AS和gradle版本都是3.6.1,SDK tools版本是26.1.1,SDK build tools版本是29.0.3

好,接下来分别对这几个文件进行配置,一个一个来
在这里插入图片描述

1.build gradle(project)


你应该要把阿里云镜像网址配好,把gradle版本改成它应该是的数字,如果不是的话,大概率收获一堆爆红

2.build gradle(module:app)

在这里插入图片描述
这里如果没有按照图片里改,会出现一堆有关depedency和method的爆红

3.gradle.properties(global)

在这里插入图片描述
如果你有幸发现了global的properties,那么不要犹豫,马上把这四行含有proxy的代码注释掉,不然你将会永无止境的download一个只有几百kb的资源文件

4.gradle-wrapper.properties

在这里插入图片描述
如果这个数字没改好,可能会有史无前例的爆红,因为连最基本的gradle大文件都不匹配


以上就是我今天一天的收获:算是弄明白了环境配置这个令人头疼的问题,由于我经验不足,纯正的菜鸟一枚,如果有不对的地方,请留言获私信告诉我!

真诚的希望这篇文章可以帮到你

发布了1 篇原创文章 · 获赞 1 · 访问量 55

猜你喜欢

转载自blog.csdn.net/coolsmartboy/article/details/105377011