Gradle不能下载jar包的解决思路

用VPN、改host等

这个网上很多介绍就不说了。

使用本地jar包

从网上下载到需要的jar包及其依赖包,放在app模块的libs目录下。如果app模块build.gradle中的dependencies默认已经有下面这句,则会自动编译libs目录下的所有jar包。

  1. dependencies {
  2. compile fileTree(dir: 'libs', include: ['*.jar'])
  3. }

也可以只引用指定的jar文件,类似下面这样。

  1. dependencies {
  2. compile files('libs/junit-4.12.jar')
  3. }

或者直接右击jar包,选择Add As Library,Android Studio会自动修改gradle文件包含jar包。

整个工程有一个build.gradle和settings.gradle,每个模块有独立的build.gradle

修改repositories配置,添加可用的仓库

使用本地jar包很多时候还是会有问题,因为下载的包可能又依赖其他包,gradle会自动从repositories指定的仓库下载,而默认的仓库是jcenter()或者mavenCentral(),如果网络不通,还是会报错。

可以在整个工程的build.gradle文件的repositories配置中,添加指定url的、可访问的maven仓库。支持添加多个仓库,gradle同步下载文件时,会自动尝试每个仓库。这个方法最简单有效。

公司内部可能会有maven仓库,也可以在网上找到国内maven仓库镜像,例如开源中国的maven镜像 http://maven.oschina.net/content/groups/public/

写法如下:

  1. repositories {
  2. maven { url "http://maven.oschina.net/content/groups/public/" }
  3. }

有两个repositories配置,一个是buildscript下的,用于整个工程,包括Android Gradle插件;另一个是allprojects,用于每个子模块。可以都加上。

  1. buildscript {

  2. repositories {

  3. jcenter()

  4. }

  5. dependencies {

  6. classpath 'com.android.tools.build:gradle:1.2.3'

  7. // NOTE: Do not place your application dependencies here; they belong

  8. // in the individual module build.gradle files

  9. }

  10. }

  11. allprojects {

  12. repositories {

  13. jcenter()

  14. }

  15. }