如果你配置过gradle镜像(特别是配置了但是不管用),可以直接看第二个标题。
由于网络安全问题,一些服务器无法在大陆直接访问,本人在5年前因为不会正确配置镜像,初学android失败,而晚了两三年才重新学习Android。准确熟练的配置镜像,能为每次创建/拓展项目时节约几十分钟时间。
不要配置网络代理,有时候配置了代理,镜像反而连不上了!建议直接配镜像。
许多博客记载过的2种情况
第一种情况,AndroidStudio创建完项目/打开项目后,左侧Project视图中的”Android”视图还没正确显示出来,就在Build页面显示timeout、connection reset或其他网络错误,这种情况是Gradle本身都没有被下载下来。
去项目路径找到gradlewrappergradle-wrapper.properties
文件,比如我的gradle版本是7.4,那么会有一行:
distributionUrl=https://services.gradle.org/distributions/gradle-7.4-bin.zip
这里替换成:
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.4-bin.zip
第二种情况,左侧Project视图中的“Android”视图格式已经正常,但是尝试运行项目的时候才报错。
这种情况在项目级别(项目根目录)的build.gradle配置镜像,也就是网络上能轻易找到的配置方法:
allprojects {
repositories {
maven { url 'https:
maven { url 'https:
maven { url 'https:
mavenLocal()
}
}
还有
buildscript {
repositories {
maven { url 'https:
maven { url 'https:
maven { url 'https:
mavenLocal()
}
dependencies {
}
}
未在简中博客发现的一种情况
第三种情况,也是我从业一年多,才刚刚遇到的,并且没找到相关的简中博客。(找到的他们的解决方案都是手动下载对应的jar,然后放到某个目录。)
刚刚尝试新建buildSrc模块,build.gradle如下:
plugins {
id 'java-library'
id 'org.jetbrains.kotlin.jvm' version '1.8.10' // 原本默认没这个version, 这里自己指定了一个.
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
然后就跑不起来了。
Connection refused: no further information
根据Download Info,总是在尝试从plugins.gradle.org/m2
这个网站下载kotlin-gradle-plugins
,
而从来都不从其他任何配置过的镜像网址下载,在项目中也找不到哪里配置了这个链接。
接下来只能看gradle源码了,为了简单,可以直接从逆向角度看。
按住ctrl点刚刚代码里的plugins
,从而快速定位到gradle本身的目录:
在lib目录的gradle开头的jar,拖到jadx,搜索字符串plugins.gradle.org/m2
:
看到如下代码:
@Override
public ArtifactRepository createGradlePluginPortal() {
MavenArtifactRepository mavenRepository = createMavenRepository(new NamedMavenRepositoryDescriber("https://plugins.gradle.org/m2", null));
mavenRepository.setUrl(System.getProperty("org.gradle.internal.plugins.portal.url.override", "https://plugins.gradle.org/m2"));
mavenRepository.metadataSources((v0) -> {
v0.mavenPom();
});
return mavenRepository;
}
可以看到这里https://plugins.gradle.org/m2
是org.gradle.internal.plugins.portal.url.override
为空时的备选值。
那么只需要考虑如何配置,才能让System.getProperty
读到。而这一步刚好能轻易找到简中资料,以systemProp.
开头配置到项目根目录gradle.properties
即可。
systemProp.org.gradle.internal.plugins.portal.url.override=https:
try again:
平均速度3.31M/s,75M的依赖很快就下载好了。
左侧还能看到个错误,
Could not resolve all files for configuration ‘:buildSrc:compileClasspath’.
Cannot resolve external dependency org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.10 because no repositories are defined.
直接在这个build.gralde后面跟上:
repositories {
maven { url 'https:
maven { url 'https:
maven { url 'https:
mavenLocal()
}
就这样,终于能运行起来了。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.dandroid.cn/archives/22585,转载请注明出处。
评论0