it-swarm.com.de

Ionic build Android-Fehler beim Herunterladen von Gradle

Ich bin sehr neu im ionischen Framework :)

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

Wenn ich '>ionic build Android' verwende, starte download gradle, aber ich kann nicht herunterladen und bekomme eine Fehlermeldung.

Was hat diesen Fehler verursacht und wie kann ich ihn beheben ?!

Ich lade Gradle herunter und installiere es auf einem PC, möchte es aber erneut herunterladen .. Kann ich Gradle offline zu einem Projekt hinzufügen?

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)
68
sadegh

Ich verwende Ionic Version 1.7.14 und die distributionUrl in der folgenden Datei. myApp/platforms/Android/cordova/lib/builders/GradleBuilder.js.

Ich musste das lokal heruntergeladene Gradle wie in dieser Antwort angegeben zeigen.

Ich hatte das gleiche Problem. Ich habe gradle zu meinem Projekt offline hinzugefügt.

Nach dem Herunterladen von Gradle von dem ausgegebenen Link (hier ist http://services.gradle.org/distributions/gradle-2.2.1-all.Zip ) fügen Sie ihn in irgendwo ein, wie myApp\platforms\Android\gradle\gradle-2.2.1-all.Zip und in build.js von myApp\platforms\Android\cordova\lib\build.js :

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

Und ersetzen Sie es durch den Speicherort Ihrer eigenen Datei:

var distributionUrl = 'distributionUrl=../gradle-2.2.1-all.Zip';
107
Spara

Da die Lösung, die oben veröffentlicht wurde, .Zip in einen Ordner aufnehmen muss, der ungefähr 55 MB beträgt

Mit dem folgenden Befehl können Sie die CLI auch dazu zwingen, während eines Builds Ant anstelle von Gradle zu verwenden:

cordova build Android -- --ant
52
A.B

Ich bin auf dieses Problem gestoßen, da unser Netzwerk-Proxy den Download der Zip-Datei blockiert. Folgendes habe ich gefunden:

HINWEIS: Dies unterscheidet sich von der "akzeptierten" Antwort darin, dass wir die Bibliothek von Cordova nicht direkt ändern. Dies ist weitaus weniger anfällig für "Fehler" oder wird überschrieben, wenn Sie ionic state restore ausführen.

  1. Laden Sie gradle - http://services.gradle.org/distributions/gradle-2.2.1-all.Zip herunter.

  2. Legen Sie diese Datei in platforms/Android/gradle ab. Wenn Sie dies jedoch in Ihren Build-Prozess integrieren, sollten Sie es an einem weniger flüchtigen Ort speichern und einen Schritt hinzufügen, um die Datei an diesen Speicherort zu kopieren.

  3. Setzen Sie die Umgebungsvariable CORDOVA_Android_GRADLE_DISTRIBUTION_URL auf ../gradle-2.2.1-all.Zip.

    • linux/osx: Fügen Sie export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.Zip" zu Ihrer ~/.bashrc-Datei hinzu
    • fenster: setx CORDOVA_Android_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.Zip
  4. ionic build Android ausführen

21
Jeff Woodard

Eine weitere Option in der Befehlszeile ist die Ausführung von $ export Java_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911" vor dem Befehl cordova build.

12
Lucas Massuh

Wenn Sie in Ihrem Netzwerk einen Proxy verwenden müssen, fügen Sie in gradle.properties eine %USER_HOME%/.gradle-Datei mit dem folgenden Code hinzu, wobei die Werte durch Ihre Proxy-Details ersetzt werden. Das hat bei mir funktioniert.

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
8
Ben Morris

Cordova 6.0.0/Visual Studio-Code 0.10.6

TL; DR

Laden Sie http://services.gradle.org/distributions/gradle-2.2.1-all.Zip manuell herunter.

Platziere es in appName\platforms\Android\gradle\

set CORDOVA_Android_GRADLE_DISTRIBUTION_URL=..\gradle-2.2.1-all.Zip

Code starten und kompilieren.

Erläuterung:

GradleBuilder.js setzt distributionUrl wie folgt:

var distributionUrl = process.env ['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || "http \: //services.gradle.org/distributions/gradle-2.2.1-all.Zip";

Skript läuft in appName\platforms\Android\gradle\wrapper

Ausgabe ist:

Herunterladen der Datei: //appname/platforms/Android/gradle/gradle-2.2.1-all.Zip

8
user5880697

Hallo zusammen, ich hatte das gleiche Problem. 

In der Plattform\Android\cordova\lib\build.js habe ich geändert

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

zu

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

und es hat funktioniert.

6
sid1337

Ich hatte das gleiche Problem und es wurde behoben, indem Build-Tools 24 deinstalliert und Build-Tools 23 vom SDK-Manager installiert wurden.

5
Emad Dehnavi

Wenn Sie einen Webserver auf Ihrem localhost haben, laden Sie alternativ die Gradle herunter (genau die getestete Version, dh http://downloads.gradle.org/distributions/gradle-2.2.1-all.Zip at den Zeitpunkt dieses Beitrags) im WWW-Stammverzeichnis und ändern Sie die Datei platform\Android\cordova\lib\build.js in Ihrem Anwendungsverzeichnis zu dieser:

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

Das Ändern der URL in eine lokale Datei (keine http-Adresse) würde für mich unter Windows nicht funktionieren und es würde sich beschweren, dass die URL ein unbekanntes Protokoll hat.

3
wmac

Es scheint ein Problem für die bisherigen Lösungen zu geben. Zumindest arbeitete keiner von ihnen für mich und ich änderte es einfach zu:

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

Dann klappt es. Ich weiß nicht, warum sie "distributionUrl =" wie folgt hinzufügen (dies funktioniert bei mir nicht):

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

Übrigens, ich benutze ionisch 2.

Achten Sie auf den Pfad, wenn Sie localhost nicht verwenden möchten. Es wird automatisch myApp/platforms/Android/gradle/wrapper vor distributionUrl hinzugefügt. Wenn Sie beispielsweise gradle-2.2.1-all.Zip im myApp/platforms/Android/gradle-Verzeichnis angeben, müssen Sie Folgendes festlegen:

var distributionUrl = '../gradle-2.2.1-all.Zip';
3
seaguest

Ich habe kürzlich das gleiche Problem gesehen und habe hier und dort gesucht.

Schließlich fand ich für den neuesten Build die Lösung.

Nach dem Befehl "ionic platform add Android" gehen Sie zu Plattformen/Android/cordova/lib/builders/GradleBuilder.js

Suchen nach

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

und ändern Sie es in

http\\://downloads.gradle.org/distributions/gradle-2.2.1-all.Zip
2
Tapan

Es hört sich an, als ob Windows Defender oder ein anderes Antivirus-System Ihre Installation durcheinander bringt. Deaktivieren Sie daher vorübergehend Ihre Firewall und führen Sie den Befehl erneut aus:

ionic build Android (or ios)

Am Ende haben Sie die Meldung BUILD SUCCESSFUL ...

0
Theophane Fotso

Alle Antworten hier sagen alle dasselbe, wenn dies einfacher als die Top-Antwort wäre. Das Aktualisieren Ihres Android SDK sollte dies beheben, und Sie können es mit dieser einen Zeile vom Terminal aus tun:

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

oder

Android update sdk --no-ui --filter extra

Siehe auch this repos issue (es handelt sich im Wesentlichen um dasselbe Problem).

Aber nachdem Sie das wieder aufgebaut haben, sollte es funktionieren.

0
garrettmac

Im Hinblick auf die Entwicklung der Ionenentwicklung müssen Sie die distributionURL in GradleBuilder.js mit der unten angegebenen URL ändern.

/Android/cordova/lib/builders/GradleBuilder.js

var distributionUrl = process.env ['CORDOVA_Android_GRADLE_DISTRIBUTION_URL'] || "https://services.gradle.org/distributions/gradle-2.14.1-all.Zip"; 

0
Sachin Mishra