Ionic build Android 下载 Gradle 时出错

我是爱奥尼亚框架的新手

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

当我使用‘ >ionic build android’开始下载梯度,但我不能下载和得到一个错误。

是什么导致了这个错误,我该如何修复它? !

我下载了 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)
88752 次浏览

我使用的是 Ionic 版本1.7.14和在下面的文件中找到的 distribution tionUrl

我必须按照这个答案中的具体说明指出本地下载的分级。

我也有同样的问题,我在我的项目中添加了离线级别。

从已发布的链接(这里是 http://services.gradle.org/distributions/gradle-2.2.1-all.zip)下载 gradle 之后,将其粘贴到类似于 myApp\platforms\android\gradle\gradle-2.2.1-all.zip的地方,然后在来自 myApp\platforms\android\cordova\lib\build.js的 build.js 中找到以下内容:

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

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

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

因为上面提交的解决方案需要将.zip 包含到大约55MB 的文件夹中

您还可以使用以下命令强制 CLI 在构建期间使用 Ant 而不是 gradle:

cordova build android -- --ant

或者,如果你的本地主机上有一个 web 服务器,下载 gradle (完全是测试过的版本,也就是本文发布时的 http://downloads.gradle.org/distributions/gradle-2.2.1-all.zip)到 www root 中,然后把你应用程序目录中的 android cordova lib build.js 文件改成这个:

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

将 URL 更改为本地文件(而不是 http 地址)对我来说在 windows 下不起作用,它会抱怨 URL 有一个未知的协议。

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

在 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';

成功了。

命令行中的另一个选项是在 cordova build 命令之前运行 $ export JAVA_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911"

如果您需要在您的网络上使用代理,那么在 %USER_HOME%/.gradle中添加一个 gradle.properties文件,其中包含以下内容,但使用代理详细信息替换这些值。这招对我很管用。

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

升级 Android 平台给我带来了好处:

  • Cordova 平台更新 Android
  • 科尔多瓦准备,
  • Cordova 编译并最终
  • 科尔多瓦建筑

Cordova 6.0.0/Visual Studio Code 0.10.6

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

开始编码并编译。

说明:

Js 将 distributionUrl设置如下:

返回文章页面分布式 services.gradle.org/distributions/gradle-2.2.1-all.zip :

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

产出为:

下载文件://appname/Platform/android/gradle/gradle-2.2.1-all. zip

我最近也遇到过同样的问题,我到处寻找。

最后,对于最新的构建,我找到了解决方案。

在“ ionic Platform add android”命令之后,转到 Platform/android/cordova/lib/builders/gradleBuilder.js

搜索

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

然后改成

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

以前的解决方案似乎有问题。至少他们都不为我工作,我只是改成:

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

我不知道为什么他们都加上“ distribution tionUrl =”(这对我来说不起作用) :

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

顺便说一句,我用的是离子2。

如果您不想使用 localhost,请注意路径。它将自动添加 myApp/platforms/android/gradle/wrapper,然后添加 distribution tionUrl,例如,如果您将 gradle-2.2.1-all.zip 放入其中 myApp/platforms/android/gradle目录,然后需要设置:

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

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

注意: 这不同于“接受”的答案,因为我们没有直接修改 Cordova 的库。当您运行 ionic state restore时,这很少出现“错误”或被覆盖

  1. 下载级别 -http://services.gradle.org/distributions/gradle-2.2.1-all.zip

  2. 把这个文件放入 platforms/android/gradle。但是,如果您正在将其集成到您的构建过程中,您可能希望将其放在不那么易变的地方,并添加一个步骤将文件复制到该位置。

  3. 把环境变量调到 ../gradle-2.2.1-all.zip

    • Linux/osx: 将 export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.zip"添加到 ~/. bashrc 文件中
    • 视窗: setx CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.zip
  4. 运行 ionic build android

这里所有的答案都说的是同一件事,当这个可以比最高的答案更容易做到。更新你的 Android SDK 应该可以解决这个问题,你可以用终端上的一行代码来解决:

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

或者

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

也见 这个回购问题(本质上是相同的问题)。

但是在你重建之后,应该会有用的。

听起来像是 Windows Defender 或者其他的防病毒系统搞乱了你的安装。因此,暂时关闭您的防火墙并重新运行命令:

ionic build android (or ios)

在最后,您有信息构建成功..。

我也遇到过同样的问题,通过卸载 build-tools 24和从 SDK Manager 安装 build-tools 23解决了这个问题。

这是因为格拉德尔错误。

下载文件 http://services.gradle.org/distributions/gradle-2.14.1-all.zip并将其解压缩到任何目录中,然后通过打开 cmd 设置路径并输入: Setx path (提取目录)/bin

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

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

更新爱奥尼亚。

我希望你的问题能得到解决。

就离子开发而言,您必须使用下面提到的 URL 修改 GradleBuilder.js 中的 distribution tionURL。

/android/cordova/lib/builders/gradleBuilder.js

Var distribution tionUrl = process.env [‘ CORDOVA _ ANDROID _ GRADLE _ DISTRIBUTION _ URL’] | | ‘ https://services.gradle.org/distributions/gradle-2.14.1-all.zip’;

我用了上面所有的东西,但没有一样是工作,然后我这样做,轰的一声它工作了... !

enter image description here

我是这么做的: 1. 从项目中打开 cmd 2.gotohttps://services.gradle.org/distributions/点击你需要的版本,右键点击并复制链接。 3. 设置变量之后: 设置 CORDOVA _ ANDROID _ GRADLE _ DISTRIBUTION _ URL = https://services.gradle.org/distributions/gradle-2.2.1-all.zip 4. 准备好了!

enter image description here