Ich bin sehr neu im Ionic Framework :)
>npm install -g cordova
>npm install -g ionic
>ionic start test blank
>cd test
>ionic platform add android
Wenn ich ' >ionic build android
' benutze, starte den Download gradle, aber ich kann nicht herunterladen und erhalte eine Fehlermeldung.
Was hat diesen Fehler verursacht und wie kann ich ihn beheben?!
Ich lade Gradle herunter und installiere es auf einem PC, aber es möchte erneut heruntergeladen werden. 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)
Antworten:
Ich verwende Ionic Version 1.7.14 und die DistributionUrl in der folgenden Datei.
myApp/platforms/android/cordova/lib/builders/GradleBuilder.js.
Ich musste auf den lokal heruntergeladenen Gradle zeigen, wie in dieser Antwort angegeben.
Ich hatte das gleiche Problem. Ich habe meinem Projekt offline gradle hinzugefügt.
Nach dem Download gradle von ausgegebenen Link (hier ist http://services.gradle.org/distributions/gradle-2.2.1-all.zip ) fügen Sie ihn in irgendwo gefällt
myApp\platforms\android\gradle\gradle-2.2.1-all.zip
und in build.js vonmyApp\platforms\android\cordova\lib\build.js
diesen finden: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';
quelle
Da die oben beschriebene Lösung .zip in einen Ordner aufnehmen muss, der ungefähr 55 MB groß ist
Mit dem folgenden Befehl können Sie CLI auch zwingen, Ant anstelle von Gradle während eines Builds zu verwenden:
quelle
ionic build android -- --ant
ionic emulate android -- --ant
Ich bin auf dieses Problem gestoßen, da unser Netzwerk-Proxy den Download der Zip-Datei blockiert. Folgendes habe ich gefunden:
Laden Sie gradle herunter - http://services.gradle.org/distributions/gradle-2.2.1-all.zip
Legen Sie diese Datei ein
platforms/android/gradle
. Wenn Sie dies jedoch in Ihren Erstellungsprozess integrieren, möchten Sie es möglicherweise an einem weniger flüchtigen Ort speichern und einen Schritt hinzufügen, um die Datei an diesen Speicherort zu kopieren.Setzen Sie die Umgebungsvariable
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL
auf../gradle-2.2.1-all.zip
export CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.zip"
es deiner ~ / .bashrc-Datei hinzusetx CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.zip
Lauf
ionic build android
quelle
Eine weitere Option über die Befehlszeile ist die Ausführung
$ 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.quelle
Wenn Sie einen Proxy in Ihrem Netzwerk verwenden müssen, fügen Sie eine
gradle.properties
Datei%USER_HOME%/.gradle
mit den folgenden Angaben hinzu, ersetzen Sie jedoch die Werte durch Ihre Proxy-Details. 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
quelle
gradle.properties
Datei nicht vorhanden ist , erstellen Sie einfach eine inplatforms/android
nur benötigt:systemProp.http.proxyHost
,systemProp.http.proxyPort
,systemProp.https.proxyHost
,systemProp.https.proxyPort
Cordova 6.0.0 / Visual Studio Code 0.10.6
TL; DR
Manuell herunterladen
http://services.gradle.org/distributions/gradle-2.2.1-all.zip
.Legen Sie 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:
Datei herunterladen: //appname/platforms/android/gradle/gradle-2.2.1-all.zip
quelle
CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL
env param verwenden, ohne Build-Dateien bearbeiten zu müssen.Hallo zusammen, ich hatte das gleiche Problem.
In der Datei platform \ 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.
quelle
Es scheint ein Problem für die vorherigen Lösungen zu geben. Zumindest hat keiner von ihnen für mich gearbeitet, und ich habe es einfach geändert in:
var distributionUrl = 'http://localhost/gradle-2.2.1-all.zip';
Dann funktioniert es. Ich weiß nicht, warum sie alle "DistributionUrl =" wie folgt hinzufügen (das funktioniert bei mir nicht):
var distributionUrl = 'distributionUrl=http\\://localhost/gradle-2.2.1-all.zip';
Übrigens benutze ich ionic 2.
Achten Sie auf den Pfad, wenn Sie ihn nicht verwenden möchten
localhost
. Es wird automatischmyApp/platforms/android/gradle/wrapper
vor DistributionUrl hinzugefügt. Wenn Sie beispielsweise gradle-2.2.1-all.zip in dasmyApp/platforms/android/gradle
Verzeichnis einfügen , müssen Sie Folgendes festlegen:var distributionUrl = '../gradle-2.2.1-all.zip';
quelle
Wenn Sie alternativ einen Webserver auf Ihrem lokalen Host haben, laden Sie den Gradle herunter und legen Sie ihn ab (genau die getestete Version, dh http://downloads.gradle.org/distributions/gradle-2.2.1-all.zip zum Zeitpunkt dieses Vorgangs) post) im www root und ändern Sie die Datei platform \ android \ cordova \ lib \ build.js in Ihrem Anwendungsverzeichnis in diese:
var distributionUrl = 'distributionUrl=http\\://localhost/gradle-2.2.1-all.zip';
Das Ändern der URL in eine lokale Datei (keine http-Adresse) würde unter Windows nicht funktionieren und es würde sich beschweren, dass die URL ein unbekanntes Protokoll hat.
quelle
Ich hatte das gleiche Problem und es wurde gelöst, indem Build-Tools 24 deinstalliert und Build-Tools 23 über SDK Manager installiert wurden.
quelle
Ich habe in letzter Zeit das gleiche Problem gehabt und hier und da gesucht.
Schließlich habe ich für den neuesten Build die Lösung gefunden.
Wechseln Sie nach dem Befehl "ionic platform add android" zu platform / 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
quelle
Alle Antworten hier sagen dasselbe, wenn dies einfacher als die oberste Antwort möglich wäre. Das Aktualisieren Ihres Android SDK sollte das Problem beheben, und Sie können dies mit dieser einen Zeile vom Terminal aus tun:
android update sdk --no-ui --all --filter "extra-android-m2repository"
oder
Siehe auch dieses Repos-Problem (es ist im Wesentlichen das gleiche Problem).
Aber nachdem Sie das wieder aufgebaut haben, sollte es funktionieren.
quelle
Es hört sich so an, als würde Windows Defender oder ein anderes Antivirensystem Ihre Installation durcheinander bringen. 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 ERFOLGREICH BAUEN ...
quelle
In Bezug auf die 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';
quelle
Ich habe alles oben benutzt, aber nichts hat funktioniert und dann habe ich das gemacht und es hat funktioniert ..!
Folgendes habe ich getan: 1. Öffnen Sie cmd aus Ihrem Projekt. 2. Gehen Sie zu https://services.gradle.org/distributions/. Klicken Sie auf die gewünschte Version, klicken Sie mit der rechten Maustaste und kopieren Sie den Link. 3. Wenn Sie fertig sind, setzen Sie die Variable: setze CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL = https://services.gradle.org/distributions/gradle-2.2.1-all.zip 4. Gut gemacht!
quelle
Das Aktualisieren der Android-Plattform hat den Trick für mich getan:
quelle
Dies liegt an einem Gradle-Fehler.
Laden Sie die Datei http://services.gradle.org/distributions/gradle-2.14.1-all.zip herunter, extrahieren Sie sie in ein beliebiges Verzeichnis, legen Sie den Pfad durch Öffnen von cmd fest und geben Sie Folgendes ein: setx path (extrahiertes Verzeichnis) / bin
Öffnen Sie danach cmd erneut und überprüfen Sie, ob Gradle funktioniert, indem Sie eine Ausgabe ausführen
gradle -v
. Es zeigt die Ausgabe der Gradle-Version. Jetzt ist der Fehler behoben; laufenionic build android
.quelle
Laden Sie JDK Version 8 herunter und entfernen Sie alle vorhandenen Versionen.
Und Ionic aktualisieren.
Ich hoffe, Ihr Problem wird gelöst.
quelle