下载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.js
find这个:
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立