V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
jeesk
V2EX  ›  Android

android studio 首次编译太慢

  •  
  •   jeesk · Sep 29, 2022 · 14052 views
    This topic created in 1316 days ago, the information mentioned may be changed or developed.

    自己搭建的梯子日常使用可以跑到 30m 左右。 但是配置到 android studio 的代理后,经常下载东西都要 1~2 个小时才能编译好, 项目很小, 没几个依赖。电脑 32G+ i7 8750 ,其他像 idea 的 spring cloud , 或者 golang 的项目也就几分钟就编译好了。 不知道 android studio 为什么这么垃圾 大家有遇见过吗?

    48 replies    2022-10-01 13:58:03 +08:00
    sunbeams001
        1
    sunbeams001  
       Sep 29, 2022
    有没有可能,gradle 代理要单独设置,不走 Android Studio
    jeesk
        2
    jeesk  
    OP
       Sep 29, 2022
    @sunbeams001
    #Thu Sep 29 10:37:03 CST 2022
    systemProp.http.proxyHost=127.0.0.1
    systemProp.http.proxyPort=1085
    systemProp.https.proxyHost=127.0.0.1
    systemProp.https.proxyPort=1085
    jeesk
        3
    jeesk  
    OP
       Sep 29, 2022
    @sunbeams001 配置了, 下载依赖的时候, 下着下着就 443 了, 梯子很稳, 就是在 android studio 里面各种慢。 今天上午编译 v2rayng , 现在都没下载好依赖。
    youxiachai
        4
    youxiachai  
       Sep 29, 2022
    你配个国内的镜像不就行了...
    jeesk
        5
    jeesk  
    OP
       Sep 29, 2022
    @youxiachai

    maven { url 'https://maven.aliyun.com/repository/public' }
    maven { url 'https://maven.aliyun.com/repository/google' }
    maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
    mavenLocal()
    mavenCentral()
    google()
    maven { url 'https://jitpack.io' }


    配置了, 完全没用。 我怀疑就是 android studio 在搞鬼。
    youxiachai
        6
    youxiachai  
       Sep 29, 2022
    为啥..我咋没你这么多事....
    closedevice
        7
    closedevice  
       Sep 29, 2022
    所以是 sync 慢还是单纯的编译慢?
    106npo
        8
    106npo  
       Sep 29, 2022 via Android
    有没有可能 你有依赖是远端实时编译的
    debuggerx
        9
    debuggerx  
       Sep 29, 2022
    @jeesk 不要没理由的怀疑 那是成见。。。
    想测试也很简单,不用打开按时,直接命令行运行 gradlew 脚本编译,这样如果还是慢,就怪不到 as 头上了吧
    debuggerx
        10
    debuggerx  
       Sep 29, 2022
    @debuggerx 不用打开按时 -> 不用打开 AS
    unco020511
        11
    unco020511  
       Sep 29, 2022
    下载 gradle 确实会有点慢,虽然已镜有国内的 cdn,但似乎也不好用. 首次编译会去下载对应版本的 gradle,你可以先下载好对应版本的 gradle,或者先在源码里把 gradle 改成你本地已有的版本.与你拉取一些三方库关系不大
    jeesk
        12
    jeesk  
    OP
       Sep 29, 2022
    @unco020511 gradle.zip 我用的是 huawei 的镜像。 只是下载依赖很慢
    jeesk
        13
    jeesk  
    OP
       Sep 29, 2022
    @debuggerx 刚才测试了, 就是 as 的锅。 不开 as , 编译速度很快了。

    坑爹呀。 直接用 gradlw 编译也才 2 分钟。
    BUILD SUCCESSFUL in 1m 55s
    95 actionable tasks: 42 executed, 53 up-to-date
    systemcall
        14
    systemcall  
       Sep 29, 2022
    Android Studio 走 HTTP 代理很麻烦
    建议试试 TUN 模式,CFW 或者 Netch 都有 TUN 模式
    jeesk
        15
    jeesk  
    OP
       Sep 29, 2022
    @systemcall 电脑没安装 ss , 一般是手机安装了 v2ray 或者 ss, 电脑直接配置代理。
    debuggerx
        16
    debuggerx  
       Sep 29, 2022   ❤️ 1
    @jeesk 测了个寂寞 依赖都下完了编译当然快
    showmethetalk
        17
    showmethetalk  
       Sep 29, 2022
    @jeesk #13 你这都 up-to-date 了
    DefoliationM
        18
    DefoliationM  
       Sep 29, 2022 via Android
    找个厂上班吧,你不适合写安卓
    leegradyllljjjj
        19
    leegradyllljjjj  
       Sep 29, 2022
    GFW + 配置地狱,这比接手屎山代码还难受
    jeesk
        20
    jeesk  
    OP
       Sep 29, 2022
    @debuggerx 刚才吃了个饭才把依赖下载好。
    imzcg2
        21
    imzcg2  
       Sep 29, 2022
    装个 clash verge 开 tun
    imzcg2
        22
    imzcg2  
       Sep 29, 2022
    还有 maven 镜像请使用华为镜像源
    Gradle 的配置文件为用户根目录下的:~/.gradle/init.gradle ( Windows 路径为:C:\Users\<UserName>\.gradle\ init.gradle ),您可以点击此处直接下载配置文件进行覆盖。如果您不想覆盖配置文件,也可以按照如下方式进行配置:

    allprojects {
    repositories {
    maven {
    url 'https://repo.huaweicloud.com/repository/maven/'
    }
    }
    buildscript {
    repositories {
    maven {
    url 'https://repo.huaweicloud.com/repository/maven/'
    }
    }
    }
    }
    imzcg2
        23
    imzcg2  
       Sep 29, 2022
    华为 maven 镜像是我见过最快的了
    pC0oc4EbCSsJUy4W
        24
    pC0oc4EbCSsJUy4W  
       Sep 29, 2022
    你没完全代理上
    jeesk
        25
    jeesk  
    OP
       Sep 29, 2022
    @imzcg2 华为 mirror 确实快。
    jeesk
        26
    jeesk  
    OP
       Sep 29, 2022
    @fatelight 肯定代理上的呀。 没代理能不报错?
    xFrye
        27
    xFrye  
       Sep 29, 2022
    可能是姿势不对吧,你 as 里面的 proxy 设置完测试下看能不能成功代理了,实在不行就删了重装。我是不太建议用国内的仓库镜像的,比如阿里云之类的,以前偶尔遇到过一些依赖没法拉下来导致构建失败
    jeesk
        28
    jeesk  
    OP
       Sep 29, 2022
    我说说我的情况吧, 第一次拉取项目建议使用使用命令行编译, 如果使用 as 会导致一直 build 。在第一次编译完成后再使用 as 去操作, 不会有太大的速度差异。
    Kasumi20
        29
    Kasumi20  
       Sep 29, 2022
    没猜错的话,你这个 1085 端口是 socks5 代理吧,哈哈

    socksProxyHost
    jeesk
        30
    jeesk  
    OP
       Sep 29, 2022
    @Kasumi20 不好意思, 我以为我真的记错了。 我又去看内部文档,1085 同事搭建的确实是 http
    HangoX
        31
    HangoX  
       Sep 29, 2022
    不是编译慢,楼主是值 sync 慢吧?首次打开进行了一个 sync ,会下载 source.jar 很多实际是没雨这个文件的,只能等超时,依赖一多就开始一直等
    jeesk
        32
    jeesk  
    OP
       Sep 29, 2022
    @HangoX 你的这个说法正确, 第一次下载太慢, 会导致多次失败。 刚才又测试了一下, 将 gradle 缓存清理后, 使用 gradle 命令下载,速度就正常了。as 的 sync 还是很慢
    AoEiuV020CN
        33
    AoEiuV020CN  
       Sep 29, 2022
    gradle 确实很多东西要下载,比以前的 ant 、Eclipse 慢得多,但要说多慢也不至于,
    谷歌 dl 域名是没有被墙的,正常不上梯子也能用的,
    我平时 as 不设置代理,只 gradle 全局设置了 http 代理,没觉得多慢,
    Helsing
        34
    Helsing  
       Sep 29, 2022 via iPhone
    全部代理关掉试试,现在 gradle 国内已经有加速了
    JayFang1993
        35
    JayFang1993  
       Sep 29, 2022
    gradle-wrapper 里面的

    distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-5.4.1-all.zip

    换成国内的镜像
    HangoX
        36
    HangoX  
       Sep 29, 2022
    我调试过这个沙雕问题。我们有自己的缓存仓库,所以同步应该是非常快的,但是我清空 gradle 缓存之后,sync 要等半个小时,抓包发现 as 在下载 source.jar ,每个都是没有的,然后一直都等超时。
    我用命令行编译,直接就是可以编译成功的,同步 source.jar 是 as 的行为。
    最近我找到一个 gradle 的插件,叫 idea ,文档说是可以控制 as 不下载 source ,但是还没有空测试是不是真的可以
    @jeesk
    jeesk
        37
    jeesk  
    OP
       Sep 29, 2022
    @JayFang1993 镜像我用的是华为的。
    JayFang1993
        38
    JayFang1993  
       Sep 29, 2022
    @jeesk 是 gradle wrapper 不是 repositories
    fan123199
        39
    fan123199  
       Sep 30, 2022
    gradle.properties 的截图是项目的还是全局的?确认下要项目目录下的。另外如果开了代理,但是代理软件是全局的,那么 maven 就直接用 google() central 等, 不要用 aliyun 试试。
    @jeesk
    fengziyun
        40
    fengziyun  
       Sep 30, 2022 via Android
    全局呢?
    jeesk
        41
    jeesk  
    OP
       Sep 30, 2022 via Android
    些帖已经终结,建议首次编译使用命令行下载依赖, 不会造成 gradle sync 长时卡顿。
    WispZhan
        42
    WispZhan  
       Sep 30, 2022 via Android
    @jeesk plugin 的配错了
    jeesk
        43
    jeesk  
    OP
       Sep 30, 2022
    @WispZhan 我 clone 别人的官方仓库还有错?
    WispZhan
        44
    WispZhan  
       Sep 30, 2022 via Android
    @jeesk plugin 的 mirror 在独立的 block 里设置的
    Anonywp
        45
    Anonywp  
       Sep 30, 2022
    建议是别走代理,本身谷歌 dl 已经在国内有了,其他第三方包用镜像,镜像是可以设置全局级别的
    learningman
        46
    learningman  
       Sep 30, 2022
    @Anonywp #45 dl.google.com 寄了,今天就因为这个调试了半天,因为这条默认在规则里走直连
    gtanyin
        47
    gtanyin  
       Oct 1, 2022
    @learningman 一样,昨天和今天也因为这个卡了很久,后来才发现寄了
    learningman
        48
    learningman  
       Oct 1, 2022
    @gtanyin #47 gradle 还不报错,就硬卡着,开 debug 才调出来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3275 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 13:56 · PVG 21:56 · LAX 06:56 · JFK 09:56
    ♥ Do have faith in what you're doing.