问一个 AndroidStudio 的问题, Gradle 编译的时候卡在, Download maven-metadata.xml

2020-12-23 10:54:29 +08:00
 Paaranoia

卡在那里有半个多小时。尝试了科学上网,使用阿里镜像,都没有解决。。求大神指点

7816 次点击
所在节点    Android
28 条回复
lonnyzhang
2020-12-23 11:18:55 +08:00
可能是你的 gradle 版本太高,仓库里又没有 metadata.xml 文件,高版本的 gradle 认为这个仓库不存在,就下不下来,加 metadataSources 试试。

repositories {
maven {
url "http://repo.mycompany.com/repo"
metadataSources {
mavenPom()
artifact()
}
}
}

https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:supported_metadata_sources
chenjiajia9411
2020-12-23 12:28:01 +08:00
还有可以清空一下 Gradle 缓存再试试。
Paaranoia
2020-12-23 12:59:29 +08:00
@lonnyzhang 添加之后还是卡在那里
Paaranoia
2020-12-23 13:02:11 +08:00
@chenjiajia9411 我尝试把项目里的.gradle 删除还有 AndroidStudio 的 Invalidate Caches /Restart,还是没有效果
Paaranoia
2020-12-23 13:03:19 +08:00
@chenjiajia9411 username 里的.gradle 也删除过,也没有效果
chenjiajia9411
2020-12-23 13:09:34 +08:00
@Paaranoia #5 ……要不你在你的 gradle.properties 里加上这么两行:
systemProp.org.gradle.internal.http.connectionTimeout=120 //随便一个足够小的数字
systemProp.org.gradle.internal.http.socketTimeout=120
再运行一下,根据报错信息看看是哪个文件下不下来,用浏览器拖下来之后改成本地依赖吧。
chenjiajia9411
2020-12-23 13:12:00 +08:00
或者也有可能是你给 gradle 分的堆太小了,看下 org.gradle.jvmargs=... -XX:MaxPermSize=...的部分,适当提高一下。
cjh1095358798
2020-12-23 15:11:22 +08:00
先科学上网,然后给 android studio 设置代理试试
excitedXXX
2020-12-23 16:57:51 +08:00
翻墙
Paaranoia
2020-12-23 17:33:54 +08:00
@lonnyzhang 等了一个多小时左右,提示我无法访问这个"repo.mycompany.com/repo",用的是阿里的镜像
Paaranoia
2020-12-23 17:37:48 +08:00
@excitedXXX
翻墙很早就试过了,不起作用
Paaranoia
2020-12-23 17:38:18 +08:00
@cjh1095358798
androidstudio 设置代理,还没有试过
不太会弄
jiaxin1121
2020-12-23 17:44:39 +08:00
小飞机开启允许局域网连接,AS 里设置里搜索 HTTP Proxy
@Paaranoia
Paaranoia
2020-12-23 18:17:25 +08:00
编译了一个小时之后,在 build 的时候报这个
Connect to maven.google.com:443 [maven.google.com/172.217.160.110] failed: Connection timed out: con
用的是阿里的镜像
yanlaz
2020-12-23 19:21:02 +08:00
Project 的 build.gradle 里面,repositories 节点添加阿里镜像:
repositories {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
google()
jcenter()
}

项目中的.gradle 和 gradle 文件夹删除,这样同步就会用当前已有的本地 gradle 版本

若同步卡顿( Studio 进程的 CPU 磁盘 网络都没有特别高的占用),直接结束 Studio 进程,重新打开。

若本地无 gradle,直接从官网( https://services.gradle.org/distributions/)下载 zip 包,放入本地用户文件夹中.gradle/wrapper/dists 目录内
yanlaz
2020-12-23 19:25:16 +08:00
看你上面的回复,基本肯定是访问超时,至于你说用了科学上网,这个不一定用了就有用,有可能 AS 不支持这个代理,有可能相关请求没有走这个代理
yanlaz
2020-12-23 19:28:59 +08:00
还有就是你点开看下详情,具体是哪个网址,可能是是哪个第三方库的下载问题。
参考:
https://www.jianshu.com/p/e6e8ef4b08a1
Paaranoia
2020-12-23 20:44:27 +08:00
@yanlaz
按照你说的试了下,还是不行
Junzhou
2020-12-23 20:54:17 +08:00
清空缓存,在 as 中设置本地代理,将请求直接转到本地代理的端口,仅仅开代理,不一定会走代理。
Paaranoia
2020-12-23 21:21:41 +08:00
as 中怎么设置本地代理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/738134

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX