android - 强制 Gradle 使用 HTTP 而不是 HTTPS

标签 android http gradle proxy react-native

我正在尝试构建 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)?

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

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

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

最佳答案

我遇到了同样的问题并解决了。

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

如果你添加

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

在您的存储库而不是 jcenter() 中,gradle 将此存储库视为带有 h​​ttp 代理的简单 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" }
    }
}

关于android - 强制 Gradle 使用 HTTP 而不是 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36029754/

相关文章:

http - 即使强制尝试设置为 false,Go http 请求也会回退到 http2

javascript - Http 请求在主体中返回比预期更多的数据

javascript - 将表单数据序列化为数组符号

gradle - 如何为多个子模块定义 gradle 任务?

java - 用本地克隆替换 gradle 依赖项

android - 在哪里可以找到第三方组件?

android - 如何解析 "adb shell top"以仅显示 CPU 或内存使用情况?

gradle - Gradle-排除依赖项的依赖项

android - 退出安卓应用

android - 启动时启动应用程序