android studio在开始都各项目之前都会遇到 gradle 的同步,而在同步过程中很多依赖下载特别慢甚至出现无法现在的情况,有的时候等的时间特别长,甚至要一天,关键是等了大半天之后突然报错,很是烦人,不仅浪费时间,还啥也没干成,比如说,Gradle下载center.bintray.com 下的一些包时经常出现连接超时(Connection timeout)的情况,以至于Gradle同步失败,项目无法构建。下面呢有两种方法,一种是国内的代理,利用阿里源,这个还是比较快的,另一个呢,就是使用shadsocks 代理,这种办法比使用国内代理要慢多了(嗯,其实也不能这样说,关键是看网速的问题了),我有一次是在晚上搞,使用的就是shadsocks代理,速度也是相当的慢,晚上毕竟在高峰期。下面就介绍用国内代理Gradle 进行sync。本人也是比较推荐这种方法的,这种方法大部分的问题还是都可以解决的。

  一、是改settings.xml文件:

   emm.....简单介绍一下用到的settings.xml文件:  如果想要深入了解settling.xml请看这篇文章,介绍的还是满详细的:https://www.cnblogs.com/soupk/p/9303611.html

      1.setting.xml文件作用:

      它是用来设置Maven参数的配置文件。并且,settings.xml是Maven的全局配置文件。settings.xml中包含类似本地仓库、远程仓库和联网使用的代理信息等配置。

      2、settings.xml文件位置:

       settings.xml文件一般存在于Maven的安装目录的conf子目录下面,或者是用户目录的.m2子目录下面。

      3、配置的优先级:

      其实相对于多用户的PC机而言,在Maven安装目录的conf子目录下面的settings.xml才是真正的全局的配置。而用户目录的.m2子目录下面的settings.xml的配置只是针对当前用户的。当这两个文件同时存在的时候,那么对于相同的配置信息用户目录下面的settings.xml中定义的会覆盖Maven安装目录下面的settings.xml中的定义。用户目录下的settings.xml文件一般是不存在的,但是Maven允许我们在这里定义我们自己的settings.xml,如果需要在这里定义我们自己的settings.xml的时候就可以把Maven安装目录下面的settings.xml文件拷贝到用户目录的.m2目录下,然后改成自己想要的样子,总之一句话。就是改Maven安装目录的conf子目录下面的settings.xml,那么问题就来了怎么改呢 ?

  二、修改settling.xml文件添加mirrors

    先介绍一下mirrors:

     mirrors作用:

     用于定义一系列的远程仓库的镜像。我们可以在pom中定义一个下载工件的时候所使用的远程仓库。但是有时候这个远程仓库会比较忙,所以这个时候人们就想着给它创建镜像以缓解远程仓库的压力,也就是说会把对远程仓库的请求转换到对其镜像地址的请求。每个远程仓库都会有一个id,这样我们就可以创建自己的mirror来关联到该仓库,那么以后需要从远程仓库下载工件的时候Maven就可以从我们定义好的mirror站点来下载,这可以很好的缓解我们远程仓库的压力。在我们定义的mirror中每个远程仓库都只能有一个mirror与它关联,也就是说你不能同时配置多个mirror的mirrorOf指向同一个repositoryId。

    下面我们就在Maven配置文件setting.xml中配置Mirror标签在mirrors下面添加mirrors标签并添加详解:

<mirrors>
  <!--该镜像的唯一标识符,id用来区分不同的mirros元素。-->
<mirror>
<id>alimaven</id>
     <!--镜像名称。-->
<name>aliyun maven</name>
     <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL。-->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<!--被镜像的服务器的id。例如,如果我们要设置了一个maven中央仓库(http://repo.maven.apache.org/maven2)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致-->
     <mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

  三、配置Gradle:

       在build.gradle中作如下配置,添加Maven仓库地址    

buildscript {
repositories {
google()
//jcenter() //可直接删除
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
} allprojects {
repositories {
google()
//jcenter()
maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
}
}

  最近构建项目时总是遇到jcenter仓库中多个jar文件无法下载的情况,所以如果你有类似情况的话可以直接删除jcenter仓库,(就算没有遇到这样的情况也可以删除,阿里的Maven镜像仓库下载依赖要快得多,如果不删除的话,建议将Maven仓库配置在jcenter之前,这样的话,找依赖会优先用配置的Maven仓库)

PS:遇到的问题及解决;

1、Could not find org.jetbrains.kotlin:kotlin-stdlib:1.1.3-2.
    Searched in the following locations:
    https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.pom
    https://dl.google.com/dl/android/maven2/org/jetbrains/kotlin/kotlin-stdlib/1.1.3-2/kotlin-stdlib-1.1.3-2.jar
    Required by:
    project : > com.android.tools.build:gradle:3.0.1 >

解决办法: 在两个repositories中加上相应代码 (  mavenCentral()  )

buildscript {
allprojects {
repositories {
google()
jcenter()
mavenCentral()
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
repositories {
jcenter()
mavenCentral()
google()
}
}

2、google()和jcenter()是被墙的,而   http://maven.aliyun.com/nexus/content/groups/public/   并不包括的google() & jcenter(),如果不用它们就会出现卡住的情况.......但是阿里提供的镜像包括了Google和Jcenter:http://maven.aliyun.com/mvn/view 但是如果我这样用:

google(){ url 'https://maven.aliyun.com/repository/google' }

是会报错的:

Could not find method google() for arguments [build_481dup0nhfy99x57ko80vlobp$_run_closure1$_closure2$_closure5@7388ff6f] on repository container of type org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.

  解决办法:有多少个加多少个就行了,放在google()前面:

maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven{ url 'https://maven.aliyun.com/repository/google' }

           

   

       

      

  

android studio gradle国内代理设置的更多相关文章

  1. android studio gradle 国内代理

    使用阿里云的国内镜像仓库地址,就可以快速的下载需要的文件 修改项目根目录下的文件 build.gradle : buildscript { repositories { maven{ url 'htt ...

  2. Android Studio Gradle 缓存目录设置

    ======================================================== 笔者:qiujuer 博客:blog.csdn.net/qiujuer 站点:www. ...

  3. Android Studio 使用socks代理

    Android Studio 使用socks代理 准备工作 1. 从https://www.privoxy.org/下载Privoxy软件 2. 安装Privoxy 3. 在Privoxy安装目录找到 ...

  4. Android studio gradle配置完整版(转)

    Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...

  5. android studio 配置网络代理

    1.首先在vultr网站购买服务器. 然后使用shadowsocksR给服务器配置FQ,再在本地机器配置好shadowsocksR. 参考网址:https://github.com/getlanter ...

  6. Android studio配置国内镜像源

    Android studio配置国内镜像源 不使用镜像也是可以的,据说谷歌在中国搭建了服务器 如果直接使用有问题,不妨使用镜像试试.有自动探测代理配置和手动代理配置. https://blog.csd ...

  7. [转]加速Android Studio/Gradle构建

    加速Android Studio/Gradle构建 android android studio gradle   已经使用Android Studio进行开发超过一年,随着项目的增大,依赖库的增多, ...

  8. 解决Android Studio Gradle Build Running慢的问题

    Android Studio方便好用,但是Android Studio Gradle Build Running很慢 解决方法: C:\Users\你的用户名\.gradle 目录下新建一个文件名为 ...

  9. Android studio gradle 打包 那些事

    总结了一下 目前觉得比较好用的gradle 和一些打包 经验.放在这里. 首先说下 渠道号 这个概念,我们经常会统计我们的api 访问来源 是来自于那个app store,这有利于 我们针对性的推广. ...

随机推荐

  1. MySQL读写分离高可用集群及读操作负载均衡(Centos7)

    目录 概述 keepalived和heartbeat对比 一.环境 二.部署 部署lvs代理和keepalived MySQL+heartbeat+drbd的部署 MySQL主从复制 web服务器及a ...

  2. 【转】Linux编译链接问题----静态库和动态库

    Linux静态库和动态库的命名规则 静态函数库 静态库的名字一般是libxxx.a,利用静态库编译生成的文件比较大,因为整个静态库所有的数据都会被整合进目标代码中. a) 优点: 编译后,可执行文件不 ...

  3. C# Winfrom DataGridView DataSource绑定数据源后--解决排序问题

    帮助类: public class SortBindingHelper<T> : BindingList<T> { private bool isSortedCore = tr ...

  4. 算法之暴力破解和kmp算法 判断A字符串是否包含B字符串

    我们都知道java中有封装好的方法,用来比较A字符串是否包含B字符串 如下代码,contains,用法是 str1.contains(str2), 这个布尔型返回,存在返回true,不存在返回fals ...

  5. Cannot debug in IntellijIdea on Linux

    OS: Deepin LinuxIDE: Intellij IdeaProject: SpringBoot based maven project Issue: cannot debug in Ide ...

  6. JNI线程、Linux常用命令、权限、防火墙配置

    JNI_OnLoad: 调用System.loadLibrary()函数时, 内部就会去查找so中的 JNI_OnLoad 函数,如果存在此函数则调用. JNI_OnLoad会: 告诉 VM 此 na ...

  7. 7月新的开始 - Axure学习01 - 元件库、元件交互样式设置

    解释: Axure 属于原型制作里的霸道总裁 1.原型:原型模拟真实产品的功能与设计.用于在初期阶段测试产品的可行性与效果.来节省开发成本与周期. 2.线框图:在初期实现对产品的了解.实现产品的基本结 ...

  8. docker换源

    方案一 修改或新增 /etc/docker/daemon.json # vi /etc/docker/daemon.json { "registry-mirrors": [&quo ...

  9. python 传参

    python不允许程序员选择采用传值还是传引用.Python参数传递采用的肯定是“传对象引用”的方式.这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能 ...

  10. Java8-Optional-No.01

    import java.util.Optional; public class Optional1 { public static void main(String[] args) { Optiona ...