下载Gradle时,Ionic构buildAndroid错误

我是非常新的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) 

Solutions Collecting From Web of "下载Gradle时,Ionic构buildAndroid错误"

我正在使用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\

 set 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。

如果您不想使用localhost请注意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立成功…

这是因为Gradle错误。

下载文件http://services.gradle.org/distributions/gradle-2.14.1-all.zip并将其解压到任何目录中,并通过打开cmd来设置path并input: setx path(extracted directory)/ bin

之后,重新打开cmd,并通过发出gradle -v检查Gradle是否正常工作。 它显示了Gradle版本的输出。 现在错误是固定的; 运行ionic build android

更新Android平台为我做了诀窍:

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

下载JDK版本8并删除所有现有版本。

并更新离子。

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