安卓studio代理-build过慢以及gradle下载失败解决方案

因为众所周知的原因,由于墙的存在,安卓开发者在使用安卓studio开发时,总是遇到下载库或者升级卡着不动的情况。如果有个代理镜像服务器,可以帮我们从国外下载,然后再映射到国内服务器该多好。感谢阿里,提供了镜像服务器。

如果你之前设置过 Android Studio 的 HTTP Proxy,然后又取消了代理设置,那么很有可能 Andoid Studio gradle 再次编译时仍然会走代理设置,造成依赖资源一直下载失败。
分为两种:

  • 单独工程配置镜像
  • 整体工程配置

1.删除 Android Studio 的代理设置

首先你需要确认你已经在 Settings -> Appearance&Behavior -> System Settings -> HTTP Proxy 中选中了 No Proxy。

然后找到项目根目录下的 gradle.properties 文件,打开查看该文件中是否有关于 proxy 设置(代理的地址和端口)的相关语句,删除这些内容,让该文件看起来大致是这个样子(如果你没有添加其他设置的话):

最后,你需要找到你的另一个 gradle.properties 文件:C:\Users\Administrator.gradle\gradle.properties:

打开该文件,和上面的操作一样,删除与 proxy 设置相关的语句,让该文件的内容看起来大致是这样(如果你没有添加其他设置的话)

2.让项目通过阿里云 maven jcenter 下载依赖资源

(若此方案不可用请用方案一)

打开项目根目录下的 build.gradle(Project:项目名称一级的gradle),如下所示添加阿里 maven 库地址:

buildscript {
   

    repositories {
        // 添加阿里云 maven 地址
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }

        google()
        jcenter()
     
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
    }
}

allprojects {
    repositories {
        // 添加阿里云 maven 地址
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }

        google()
        jcenter()
    
        maven { url 'https://jitpack.io' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

重新 Make Project 项目,编译时的资源下载一般就会如丝般顺滑了。

 

全局配置

在C:\Users\Administrator.gradle中新建init.gradle,并输入如下内容:

allprojects{
    repositories {
        def ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
        def ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
        all { ArtifactRepository repo ->
            if(repo instanceof MavenArtifactRepository){
                def url = repo.url.toString()
                if (url.startsWith('https://repo1.maven.org/maven2')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
                    remove repo
                }
                if (url.startsWith('https://jcenter.bintray.com/')) {
                    project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
                    remove repo
                }
            }
        }
        maven {
            url ALIYUN_REPOSITORY_URL
            url ALIYUN_JCENTER_URL
        }
    }
}
 

你可能感兴趣的:(Android,安卓系统相关)