下载gradle时离子build立android错误

我是非常新的ionic framework:)

>npm install -g cordova >npm install -g ionic >ionic start test blank >cd test >ionic platform add android 

当我使用' >ionic build android '开始下载gradle,但不能下载并得到一个错误

是什么导致了这个错误,我该如何解决?

我下载Gradle并在PC上安装,但想再次下载。 可以离线添加gradle项目吗?

 C:\Users\LENOVO2014\test>ionic build android running cordova build android Running command: "C:\Program Files\nodejs\node.exe" C:\Users\LENOVO2014\myApp\ho oks\after_prepare\010_add_platform_class.js C:\Users\LENOVO2014\myApp add to body class: platform-android Running command: C:\Users\LENOVO2014\myApp\platforms\android\cordova\build.bat ANDROID_HOME=D:\program\Programing\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk1.8.0_31 Running: C:\Users\LENOVO2014\myApp\platforms\android\gradlew cdvBuildDebug -b C: \Users\LENOVO2014\myApp\platforms\android\build.gradle -Dorg.gradle.daemon=true Downloading http://services.gradle.org/distributions/gradle-2.2.1-all.zip ................................................................................ ................................................................................ ................................................................................ ............................................ Exception in thread "main" java.lang.RuntimeException: java.net.SocketException: Connection reset 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.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:189) at java.net.SocketInputStream.read(SocketInputStream.java:121) at java.io.BufferedInputStream.read1(BufferedInputStream.java:284) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at sun.net.www.MeteredStream.read(MeteredStream.java:134) at java.io.FilterInputStream.read(FilterInputStream.java:133) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Http URLConnection.java:3335) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Http URLConnection.java:3328) at org.gradle.wrapper.Download.downloadInternal(Download.java:63) 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) ... 3 more C:\Users\LENOVO2014\myApp\platforms\android\cordova\node_modules\q\q.js:126 throw e; ^ Error code 1 for command: cmd with args: /s /c "C:\Users\LENOVO2014\myApp\platfo rms\android\gradlew cdvBuildDebug -b C:\Users\LENOVO2014\myApp\platforms\android \build.gradle -Dorg.gradle.daemon=true" ERROR building one of the platforms: Error: C:\Users\LENOVO2014\myApp\platforms\ android\cordova\build.bat: Command failed with exit code 1 You may not have the required environment or OS to build this project Error: C:\Users\LENOVO2014\myApp\platforms\android\cordova\build.bat: Command fa iled with exit code 1 at ChildProcess.whenDone (C:\Users\LENOVO2014\AppData\Roaming\npm\node_modul es\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:131:23) at ChildProcess.emit (events.js:110:17) at maybeClose (child_process.js:1015:16) at Process.ChildProcess._handle.onexit (child_process.js:1087:5) 

我正在使用Ionic版本1.7.14和在以下文件中finddistributionUrl。 myApp/platforms/android/cordova/lib/builders/GradleBuilder.js.

我不得不指出本答复中指定的本地下载Gradle。

我有同样的问题。 我离线添加gradle到我的项目。

从发布的链接(这里是http://services.gradle.org/distributions/gradle-2.2.1-all.zip )下载gradle后,粘贴在某个地方, myApp\platforms\android\gradle\gradle-2.2.1-all.zip和build.js from myApp\platforms\android\cordova\lib\build.jsfind这个:

 var distributionUrl = 'distributionUrl=http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip'; 

并将其replace为您自己的文件位置:

 var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.zip'; 

由于上面的解决scheme需要包含.zip到大约55MB的文件夹

使用以下命令还可以强制CLI在构build过程中使用Ant代替Gradle:

 cordova build android -- --ant 

我遇到了这个问题,因为我们的networking代理阻止了zip文件的下载。 这是我发现的:

注:这不同于“接受”的答案,因为我们不直接修改cordova的图书馆。 当您运行ionic state restore时,这种情况不太容易出现“错误”或被覆盖

1)下载gradle – http://services.gradle.org/distributions/gradle-2.2.1-all.zip

2)把这个文件放在platforms/android/gradle 。 但是,如果您将其集成到构build过程中,则可能需要将其保存在不太易失性的位置,并添加一个步骤将文件复制到该位置。

3)将环境variablesCORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL设置为../gradle-2.2.1-all.zip

  • linux / osx:将export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.zip"到你的〜/ .bashrc文件
  • windows: setx CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.zip

4)运行ionic build android

命令行的另一个选项是运行$ export JAVA_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911"cordovabuild立命令。

如果您需要在您的networking上使用代理,请使用gradle.properties代码在%USER_HOME%/.gradle添加一个gradle.properties文件,并用您的代理详细信息replace这些值。 这对我有效。

 gradlePropertiesProp=gradlePropertiesValue sysProp=shouldBeOverWrittenBySysProp envProjectProp=shouldBeOverWrittenByEnvProp systemProp.system=systemValue systemProp.http.proxyHost=myproxy.com systemProp.http.proxyPort=8080 systemProp.http.nonProxyHosts=\*.mydomain.com|localhost systemProp.https.proxyHost=myproxy.com systemProp.https.proxyPort=8080 systemProp.https.nonProxyHosts=\*.mydomain.com|localhost 

cordova6.0.0 / Visual Studio代码0.10.6

TL; DR

手动下载http://services.gradle.org/distributions/gradle-2.2.1-all.zip

把它放在appName \ platforms \ android \ gradle \

设置CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL = .. \ gradle-2.2.1-all.zip

启动代码并编译。

说明:

GradleBuilder.js设置distributionUrl如下:

var distributionUrl = process.env ['CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL'] || 的 'http \://services.gradle.org/distributions/gradle-2.2.1-all.zip';

脚本在appName \ platforms \ android \ gradle \ wrapper中运行

输出是:

正在下载文件://appname/platforms/android/gradle/gradle-2.2.1-all.zip

大家好,我有同样的问题。

在platform \ android \ cordova \ lib \ build.js文件中,我改变了

 var distributionUrl = 'distributionUrl=http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip'; 

 var distributionUrl = 'distributionUrl=http://services.gradle.org/distributions/gradle-2.2.1-all.zip'; 

它的工作。

我遇到了同样的问题,解决了卸载构build工具24和从SDK Manager安装构build工具23的问题。

或者,如果你的本地主机上有一个Web服务器,请下载并放置Gradle(完全是testing版本,例如http://downloads.gradle.org/distributions/gradle-2.2.1-all.zip); )在www根目录下,并将您的应用程序目录中的platforms \ android \ cordova \ lib \ build.js文件更改为以下格式:

  var distributionUrl = 'distributionUrl=http\\://localhost/gradle-2.2.1-all.zip'; 

将URL改为本地文件(不是http地址)在Windows下不适用于我,它会抱怨URL有一个未知的协议。

上面的解决scheme似乎有问题,至less他们没有为我工作,我只是改变它

 var distributionUrl = 'http://localhost/gradle-2.2.1-all.zip'; 

那么它的工作,我不知道为什么他们都添加“distributionUrl =”如下(这不适合我):

  var distributionUrl = 'distributionUrl=http\\://localhost/gradle-2.2.1-all.zip'; 

顺便说一下,我正在使用离子2。

注意path如果你不想使用本地主机,它会在distributionUrl之前自动添加myApp / platforms / android / gradle / wrapper,例如,如果你把gradle-2.2.1-all.zip放在myApp / platforms / android / gradle目录,那么你需要设置:

 var distributionUrl = '../gradle-2.2.1-all.zip'; 

我最近面临同样的问题。 在这里和那里search。

最后为最新的版本我find了解决scheme。

在“离子平台添加android”命令之后,进入platforms / android / cordova / lib / builders / GradleBuilder.js

search

 http\\://services.gradle.org/distributions/gradle-2.2.1-all.zip 

并将其更改为

 http\\://downloads.gradle.org/distributions/gradle-2.2.1-all.zip 

我迟到了一年,但所有的答案在这里都说同样的事情,这可以做得比顶部的答案更容易。 更新你的android sdk应该可以解决这个问题,你可以用terminal上的这一行来完成它:

 android update sdk --no-ui --all --filter "extra-android-m2repository" 

要么

 android update sdk --no-ui --filter extra 

也看到这个回购问题(其本质上是相同的问题)

但是在你重build之后,它应该可以工作。

听起来像Windows Defender或一些其他的防病毒系统搞乱你的安装。 所以暂时停用你的防火墙并重新运行命令:ionic build android(or ios)最后你有消息BUILD SUCCESSFUL …

这是由于gradle错误下载文件http://services.gradle.org/distributions/gradle-2.14.1-all.zip并提取它在任何目录中,并通过打开cmd设置path,并inputsetxpath(提取direstory)/ bin重新打开cmd后,通过gradle -v检查gradle是否正常工作,显示gradle版本的输出。 现在错误是固定的运行离子build立android

下载JDK版本8并删除所有现有版本。 并更新离子

我希望你的问题能够解决。

更新Android平台为我做了诀窍

  • cordova平台更新android
  • cordova准备,
  • cordova编译,最后
  • cordovabuild立