强制 Gradle 使用 HTTP 而不是 HTTPS

新手上路,请多包涵

我正在尝试构建 react-native android 应用程序,作为依赖,我看到我有 gradle,但它无法在构建时加载。错误信息:

 * What went wrong:
A problem occurred configuring root project 'MobileApp'.
> Could not resolve all dependencies for configuration ':classpath'.
   > Could not resolve com.android.tools.build:gradle:1.3.1.
     Required by:
         :MobileApp:unspecified
      > Could not resolve com.android.tools.build:gradle:1.3.1.
         > Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom'.
            > Could not GET 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.3.1/gradle-1.3.1.pom'.
               > Connection to https://jcenter.bintray.com refused

问题很清楚,我坐在公司代理后面,该代理会错误地阻止任何此类 HTTPS 连接。所以我的问题是:如何强制 gradle 使用 HTTP 加载这些文件?这些属性应该放在哪里(哪个 gradle 文件,即 gradle.properties)?

PS我已经在gradle属性文件中设置了这些:

 systemProp.http.proxyHost= myHost
systemProp.http.proxyPort= myPort
systemProp.http.proxyUser= myUser
systemProp.http.proxyPassword= myPassword

任何链接、建议等都会有很大帮助。

原文由 Mindaugas 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.6k
1 个回答

我有同样的问题并修复了它。

gradle 被迫通过 https 代理从 jcenter 获取依赖。

如果你添加

maven { url "http://jcenter.bintray.com" }

在您的存储库而不是 jcenter() 中,gradle 将此存储库视为具有 http 代理的简单 maven 存储库。

您的项目 build.gradle 应该如下所示:

 buildscript {
    repositories {
        maven { url "http://jcenter.bintray.com" }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.1'
    }
}

allprojects {
    repositories {
        maven { url "http://jcenter.bintray.com" }
    }
}

原文由 mohamad mohsen Taheri 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题