gradle构建因未知主机异常而失败

时间:2014-04-01 18:34:39

标签: java android gradle android-studio

我刚刚安装了新版本的Android Studio,并尝试使用内置模板创建项目。

我的环境是: Windows 7,SP1,64位 在安全的域环境中,我是我的计算机上的域管理员。

以下是我所看到的:

C:\Users\stuz\AndroidStudioProjects\test>gradlew compileDebug --stacktrace
Downloading file://C:/Users/stuz/.gradle/wrapper/dists/gradle-1.10-all.zip
Exception in thread "main" java.lang.RuntimeException: java.net.UnknownHostExcep
tion: C
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.java:78)
        at org.gradle.wrapper.Install.createDist(Install.java:47)
        at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:129)
        at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:48)
Caused by: java.net.UnknownHostException: C
        at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at sun.net.ftp.impl.FtpClient.doConnect(Unknown Source)
        at sun.net.ftp.impl.FtpClient.tryConnect(Unknown Source)
        at sun.net.ftp.impl.FtpClient.connect(Unknown Source)
        at sun.net.ftp.impl.FtpClient.connect(Unknown Source)
        at sun.net.www.protocol.ftp.FtpURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(Unknown Sour
ce)
        at org.gradle.wrapper.Download.downloadInternal(Download.java:59)
        at org.gradle.wrapper.Download.download(Download.java:45)
        at org.gradle.wrapper.Install$1.call(Install.java:60)
        at org.gradle.wrapper.Install$1.call(Install.java:47)
        at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAcc
essManager.java:65)

感谢您的帮助。

6 个答案:

答案 0 :(得分:2)

问题出在您的 gradle / wrapper / gradle_wrapper.properties 文件中。我不确定它是如何发生的,但是你有一个不正确的URL用于Gradle的可下载分发。改变这一行:

distributionUrl=file://C:/Users/stuz/.gradle/wrapper/dists/gradle-1.10-all.zip

到此:

distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-all.zip

答案 1 :(得分:2)

此解决方案对我有用...

在项目目录中找到文件 gradlew.bat ,在文件中更改 DEFAULT_JVM_OPTS 变量,如下所示:

set DEFAULT_JVM_OPTS=-Dhttp.proxyHost=YOUR_HOST -Dhttp.proxyPort=PORT -Dhttp.proxyUser=USERNAME -Dhttp.proxyPassword=PASSWORD -Dhttps.proxyHost=YOUR_HOST -Dhttps.proxyPort=PORT -Dhttps.proxyUser=USERNAME -Dhttps.proxyPassword=PASSWORD

然后运行gradlew clean build

答案 2 :(得分:1)

检查您是否在安全网络上 - 如果是这种情况,则在gradle / wrapper / gradle_wrapper.properties文件中

distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip

此行中有 https ,安全网络拒绝该行。 我改为不安全的网络,它开始为我工作。

答案 3 :(得分:0)

在你的项目文件夹下转到:platforms / android / cordova / lib / builders / GradleBuilder.js 查找distributionUrl并使用http删除https,并将“services”替换为“downloads”。

distributionUrl=http\://downloads.gradle.org/distributions/gradle-2.4-all.zip

答案 4 :(得分:0)

您需要使用Windows样式文件URI使其有效

Windows Reference for File URI

distributionUrl=file\:///C\:/Users/<your_path_separated_by_/_chars>/gradle-2.4-all.zip

答案 5 :(得分:0)

将分发网址更改为http://services.gradle.org/distributions/gradle-1.10-all.zip之后。

如果您仍然遇到services.gradle.org的未知主机异常,请尝试将HTTP / HTTPS代理设置为环境变量。见下面的帖子

https://stackoverflow.com/a/59045565/4468693