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

android studio 首次编译太慢

  •  
  •   jeesk · 2022-09-29 11:10:14 +08:00 · 10085 次点击
    这是一个创建于 811 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    48 条回复    2022-10-01 13:58:03 +08:00
    sunbeams001
        1
    sunbeams001  
       2022-09-29 11:17:56 +08:00
    有没有可能,gradle 代理要单独设置,不走 Android Studio
    jeesk
        2
    jeesk  
    OP
       2022-09-29 11:30:48 +08:00
    @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
       2022-09-29 11:31:41 +08:00
    @sunbeams001 配置了, 下载依赖的时候, 下着下着就 443 了, 梯子很稳, 就是在 android studio 里面各种慢。 今天上午编译 v2rayng , 现在都没下载好依赖。
    youxiachai
        4
    youxiachai  
       2022-09-29 11:33:02 +08:00
    你配个国内的镜像不就行了...
    jeesk
        5
    jeesk  
    OP
       2022-09-29 11:43:03 +08:00
    @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  
       2022-09-29 11:52:36 +08:00
    为啥..我咋没你这么多事....
    closedevice
        7
    closedevice  
       2022-09-29 11:53:45 +08:00
    所以是 sync 慢还是单纯的编译慢?
    xmumiffy
        8
    xmumiffy  
       2022-09-29 11:55:12 +08:00 via Android
    有没有可能 你有依赖是远端实时编译的
    debuggerx
        9
    debuggerx  
       2022-09-29 11:56:11 +08:00
    @jeesk 不要没理由的怀疑 那是成见。。。
    想测试也很简单,不用打开按时,直接命令行运行 gradlew 脚本编译,这样如果还是慢,就怪不到 as 头上了吧
    debuggerx
        10
    debuggerx  
       2022-09-29 11:56:36 +08:00
    @debuggerx 不用打开按时 -> 不用打开 AS
    unco020511
        11
    unco020511  
       2022-09-29 12:01:10 +08:00
    下载 gradle 确实会有点慢,虽然已镜有国内的 cdn,但似乎也不好用. 首次编译会去下载对应版本的 gradle,你可以先下载好对应版本的 gradle,或者先在源码里把 gradle 改成你本地已有的版本.与你拉取一些三方库关系不大
    jeesk
        12
    jeesk  
    OP
       2022-09-29 12:21:54 +08:00
    @unco020511 gradle.zip 我用的是 huawei 的镜像。 只是下载依赖很慢
    jeesk
        13
    jeesk  
    OP
       2022-09-29 12:33:15 +08:00
    @debuggerx 刚才测试了, 就是 as 的锅。 不开 as , 编译速度很快了。

    坑爹呀。 直接用 gradlw 编译也才 2 分钟。
    BUILD SUCCESSFUL in 1m 55s
    95 actionable tasks: 42 executed, 53 up-to-date
    systemcall
        14
    systemcall  
       2022-09-29 12:37:07 +08:00
    Android Studio 走 HTTP 代理很麻烦
    建议试试 TUN 模式,CFW 或者 Netch 都有 TUN 模式
    jeesk
        15
    jeesk  
    OP
       2022-09-29 12:44:07 +08:00
    @systemcall 电脑没安装 ss , 一般是手机安装了 v2ray 或者 ss, 电脑直接配置代理。
    debuggerx
        16
    debuggerx  
       2022-09-29 12:46:14 +08:00   ❤️ 1
    @jeesk 测了个寂寞 依赖都下完了编译当然快
    liut2016
        17
    liut2016  
       2022-09-29 13:00:14 +08:00
    @jeesk #13 你这都 up-to-date 了
    DefoliationM
        18
    DefoliationM  
       2022-09-29 13:02:38 +08:00 via Android
    找个厂上班吧,你不适合写安卓
    leegradyllljjjj
        19
    leegradyllljjjj  
       2022-09-29 13:18:44 +08:00
    GFW + 配置地狱,这比接手屎山代码还难受
    jeesk
        20
    jeesk  
    OP
       2022-09-29 13:20:04 +08:00
    @debuggerx 刚才吃了个饭才把依赖下载好。
    imzcg2
        21
    imzcg2  
       2022-09-29 13:25:47 +08:00
    装个 clash verge 开 tun
    imzcg2
        22
    imzcg2  
       2022-09-29 13:28:43 +08:00
    还有 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  
       2022-09-29 13:29:12 +08:00
    华为 maven 镜像是我见过最快的了
    pC0oc4EbCSsJUy4W
        24
    pC0oc4EbCSsJUy4W  
       2022-09-29 15:06:59 +08:00
    你没完全代理上
    jeesk
        25
    jeesk  
    OP
       2022-09-29 15:12:17 +08:00
    @imzcg2 华为 mirror 确实快。
    jeesk
        26
    jeesk  
    OP
       2022-09-29 15:27:20 +08:00
    @fatelight 肯定代理上的呀。 没代理能不报错?
    xFrye
        27
    xFrye  
       2022-09-29 15:28:55 +08:00
    可能是姿势不对吧,你 as 里面的 proxy 设置完测试下看能不能成功代理了,实在不行就删了重装。我是不太建议用国内的仓库镜像的,比如阿里云之类的,以前偶尔遇到过一些依赖没法拉下来导致构建失败
    jeesk
        28
    jeesk  
    OP
       2022-09-29 15:34:39 +08:00
    我说说我的情况吧, 第一次拉取项目建议使用使用命令行编译, 如果使用 as 会导致一直 build 。在第一次编译完成后再使用 as 去操作, 不会有太大的速度差异。
    Kasumi20
        29
    Kasumi20  
       2022-09-29 16:34:49 +08:00
    没猜错的话,你这个 1085 端口是 socks5 代理吧,哈哈

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

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

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