V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Paaranoia
V2EX  ›  Android

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

  •  
  •   Paaranoia · 2020-12-23 10:54:29 +08:00 · 2967 次点击
    这是一个创建于 1191 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    28 条回复    2020-12-24 14:18:50 +08:00
    lonnyzhang
        1
    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
        2
    chenjiajia9411  
       2020-12-23 12:28:01 +08:00
    还有可以清空一下 Gradle 缓存再试试。
    Paaranoia
        3
    Paaranoia  
    OP
       2020-12-23 12:59:29 +08:00
    @lonnyzhang 添加之后还是卡在那里
    Paaranoia
        4
    Paaranoia  
    OP
       2020-12-23 13:02:11 +08:00
    @chenjiajia9411 我尝试把项目里的.gradle 删除还有 AndroidStudio 的 Invalidate Caches /Restart,还是没有效果
    Paaranoia
        5
    Paaranoia  
    OP
       2020-12-23 13:03:19 +08:00
    @chenjiajia9411 username 里的.gradle 也删除过,也没有效果
    chenjiajia9411
        6
    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
        7
    chenjiajia9411  
       2020-12-23 13:12:00 +08:00
    或者也有可能是你给 gradle 分的堆太小了,看下 org.gradle.jvmargs=... -XX:MaxPermSize=...的部分,适当提高一下。
    cjh1095358798
        8
    cjh1095358798  
       2020-12-23 15:11:22 +08:00
    先科学上网,然后给 android studio 设置代理试试
    excitedXXX
        9
    excitedXXX  
       2020-12-23 16:57:51 +08:00
    翻墙
    Paaranoia
        10
    Paaranoia  
    OP
       2020-12-23 17:33:54 +08:00
    @lonnyzhang 等了一个多小时左右,提示我无法访问这个"repo.mycompany.com/repo",用的是阿里的镜像
    Paaranoia
        11
    Paaranoia  
    OP
       2020-12-23 17:37:48 +08:00
    @excitedXXX
    翻墙很早就试过了,不起作用
    Paaranoia
        12
    Paaranoia  
    OP
       2020-12-23 17:38:18 +08:00
    @cjh1095358798
    androidstudio 设置代理,还没有试过
    不太会弄
    jiaxin1121
        13
    jiaxin1121  
       2020-12-23 17:44:39 +08:00
    小飞机开启允许局域网连接,AS 里设置里搜索 HTTP Proxy
    @Paaranoia
    Paaranoia
        14
    Paaranoia  
    OP
       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
        15
    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
        16
    yanlaz  
       2020-12-23 19:25:16 +08:00
    看你上面的回复,基本肯定是访问超时,至于你说用了科学上网,这个不一定用了就有用,有可能 AS 不支持这个代理,有可能相关请求没有走这个代理
    yanlaz
        17
    yanlaz  
       2020-12-23 19:28:59 +08:00
    还有就是你点开看下详情,具体是哪个网址,可能是是哪个第三方库的下载问题。
    参考:
    https://www.jianshu.com/p/e6e8ef4b08a1
    Paaranoia
        18
    Paaranoia  
    OP
       2020-12-23 20:44:27 +08:00
    @yanlaz
    按照你说的试了下,还是不行
    Junzhou
        19
    Junzhou  
       2020-12-23 20:54:17 +08:00
    清空缓存,在 as 中设置本地代理,将请求直接转到本地代理的端口,仅仅开代理,不一定会走代理。
    Paaranoia
        20
    Paaranoia  
    OP
       2020-12-23 21:21:41 +08:00
    as 中怎么设置本地代理
    Paaranoia
        21
    Paaranoia  
    OP
       2020-12-23 21:21:56 +08:00
    @Junzhou
    as 中怎么设置本地代理
    Paaranoia
        22
    Paaranoia  
    OP
       2020-12-23 21:25:39 +08:00
    @Junzhou
    我在 project 中的 gradle.properties 里添加的
    systemProp.http.proxyHost=127.0.0.1
    systemProp.http.proxyPort=1080
    是这样么?
    HarryQu
        23
    HarryQu  
       2020-12-23 22:23:16 +08:00
    哥们刚学的 Android 开发?设置本地代理如下:

    Android Studio 打开偏好设置 ->搜索 Proxy 如下图:

    https://ftp.bmp.ovh/imgs/2020/12/2ef44d8a44d48a16.png

    如果你的代理端口为 1080 则设置为 1080,如果不是的话,请自己查询下。

    设置之后,查看是否能连接上代理,如下图:

    https://ftp.bmp.ovh/imgs/2020/12/f967cad9e28b8cb3.png

    测试完成后,点击 apply -> ok 。
    Paaranoia
        24
    Paaranoia  
    OP
       2020-12-23 22:30:21 +08:00
    @HarryQu
    谢谢老哥
    lonnyzhang
        25
    lonnyzhang  
       2020-12-24 09:09:30 +08:00
    @Paaranoia url 肯定要换啊。。。或者不写

    1.看 gradle 版本,5.0 以下就不是我说的问题,5.0 及以上看第二条
    2.到卡住的那个仓库看有没有 metadata.xml 、pom.xml 文件,没有的话就是我说的问题
    3.加上下面的配置就 ok

    metadataSources {
    mavenPom()
    artifact()
    }
    loginbygoogle
        26
    loginbygoogle  
       2020-12-24 09:18:09 +08:00 via iPhone
    设置代理
    yanlaz
        27
    yanlaz  
       2020-12-24 11:30:35 +08:00
    @Paaranoia 老哥要不发下项目代码让大家试试
    Paaranoia
        28
    Paaranoia  
    OP
       2020-12-24 14:18:50 +08:00
    问题已解决,在此结贴,感谢各位!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3799 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:35 · PVG 18:35 · LAX 03:35 · JFK 06:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.