I'm very new to the Ionic framework :)
>npm install -g cordova
>npm install -g ionic
>ionic start test blank
>cd test
>ionic platform add android
When I use '>ionic build android
' start download gradle, but I can't download and get an error.
What caused this error and how can I fix it?!
I download Gradle and install it on a PC, but it wants to download again. Can I add Gradle to a project offline?
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)
There seems to be a problem for the previous solutions. At least none of them worked for me, and I just changed it to:
Then it works. I don't know why they all add "distributionUrl=" as follows (this doesn't work for me):
BTW, I am using ionic 2.
Pay attention to the path if you don't want to use
localhost
. It will automatically addmyApp/platforms/android/gradle/wrapper
before distributionUrl, for example if you put gradle-2.2.1-all.zip in themyApp/platforms/android/gradle
directory, then you need to set:I have faced the same problem recently, and I searched here and there.
Finally for the latest build I found the solution.
After "ionic platform add android" command, go to platforms/android/cordova/lib/builders/GradleBuilder.js
Search for
and change it to
If you require to use a proxy on your network then add a
gradle.properties
file in%USER_HOME%/.gradle
with the below but replacing the values with your proxy details. This worked for me.It sounds like Windows Defender or some other antivirus system is messing up with your install. So temporarily deactivate your firewall and re-run the command:
At the end you have the message BUILD SUCCESSFUL...
I ran into this issue as our network proxy is blocking the download of the zip file. Here's what I found:
Download gradle - http://services.gradle.org/distributions/gradle-2.2.1-all.zip
Put this file in
platforms/android/gradle
. However, if you're integrating this into your build process, you may want to stick it somewhere less volatile and add a step to copy the file into that location.Set the environment variable
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL
to../gradle-2.2.1-all.zip
export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.zip"
to your ~/.bashrc filesetx CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.zip
Run
ionic build android
I am using Ionic version 1.7.14 and the distributionUrl found in the following file.
myApp/platforms/android/cordova/lib/builders/GradleBuilder.js.
I had to point the locally downloaded gradle as specified in this answer.
I had the same problem. I added gradle to my project offline.
After downloading gradle from issued link (here is http://services.gradle.org/distributions/gradle-2.2.1-all.zip) paste it in somewhere likes
myApp\platforms\android\gradle\gradle-2.2.1-all.zip
and in build.js frommyApp\platforms\android\cordova\lib\build.js
find this:And replace it with your own file's location: