无法使用 jcenter 解决 Android Studio 中的依赖关系

Can't resolve dependency in Android Studio with jcenter

为什么我的程序在解决andorid studio中appDebug的依赖时挂起?我无法解析任何库。

这是我的根 gradle 文件:

buildscript {
repositories {

    jcenter()

}
dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}
}

allprojects {
repositories {
    jcenter()
}
}

这是我的应用 gradle :

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.example.alimohammadi.myapplication"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}

而且我无法解析 junit。而且我无法使用我的浏览器访问 https://jcenter.bintray.com/(它让我连接超时,而其他站点 return 真实响应)。

在浪费了一天时间后,我发现它是送给伊朗开发者的礼物 :D

最后我切换回 mavenCentral()。通过在我的根 gradle 中更改为 mavenCentral()。问题解决了。

我的根 build.gradle 文件转向下面的代码:

buildscript {
repositories {

   mavenCentral()

}
dependencies {
    classpath 'com.android.tools.build:gradle:1.5.0'
}
}

allprojects {
repositories {
    mavenCentral()
}
}

某些库在 mevenCentral 中不存在,因此我们必须向我们的 gradle.properties 文件添加代理,如下所示以访问 jcenter :D

systemProp.http.proxyHost=www.somehost.org
systemProp.http.proxyPort=8080
systemProp.http.proxyUser=user
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=localhost
systemProp.http.auth.ntlm.domain=domain

或 https

systemProp.https.proxyHost=www.somehost.org
systemProp.https.proxyPort=8080
systemProp.https.proxyUser=user
systemProp.https.proxyPassword=password
systemProp.https.nonProxyHosts=localhost
systemProp.https.auth.ntlm.domain=domain

当我试图在我的 build.gradle 中包含以下依赖项时,我遇到了完全相同的问题 类路径 'com.google.gms:google-services:3.0.0' 为了

buildscript {
  repositories {
      jcenter()
  }

  dependencies {
      classpath 'com.android.tools.build:gradle:2.3.0'
      classpath 'com.google.gms:google-services:3.0.0'
  }
}

我在 gradle 解析路径上超时。到目前为止(当只有 gradle:2.3.0 的类路径存在时),我实际上是在使用我的缓存,所以我没有注意到我的代理设置不正确。

所以我尝试 select 手动代理:Settings->Apperance&Behaviour-> System Settings ->Http Proxy 使用主机名和端口号。 所以关联的 gradle.properties 是:

systemProp.http.proxyHost=proxy<blabla>.com
systemProp.http.proxyPort=123    (123 is just an example)

但我仍然遇到问题。卡兰巴!!所以我注意到我需要的文件位于此处:

https://jcenter.bintray.com/com/android/tools/build/gradle/2.3.0/

但是 Android studio 不提供 UI 在 HTTPS 上设置代理,所以我手动编辑 gradle.properties 以复制 https

的行
systemProp.http.proxyHost=proxy<blabla>.com
systemProp.http.proxyPort=123    (123 is just an example)
systemProp.https.proxyHost=proxy<blabla>.com
systemProp.https.proxyPort=123  

而且....它对我有用。不需要将 jcenter 更改为 mavenCentral。

经过长时间的调查,我出乎意料地找到了解决方案。 - 尝试使用不同的网络或移动热点构建您的 gradle。适合我。