web-dev-qa-db-fra.com

Ionic build Android error lors du téléchargement de Gradle

Je suis très nouveau dans le framework Ionic :)

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

Lorsque j'utilise '>ionic build Android', commencez le téléchargement, mais je ne peux pas télécharger et obtenir une erreur.

Qu'est-ce qui a provoqué cette erreur et comment puis-je la réparer?!

Je télécharge Gradle et l’installe sur un PC, mais il veut le télécharger à nouveau ..__ Puis-je ajouter Gradle à un projet hors ligne?

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

J'utilise la version Ionic 1.7.14 et le distributionUrl trouvés dans le fichier suivant. myApp/platforms/Android/cordova/lib/builders/GradleBuilder.js.

Je devais indiquer le classement téléchargé localement comme spécifié dans cette réponse.

J'ai eu le même problème. J'ai ajouté gradle à mon projet hors ligne.

Après avoir téléchargé gradle à partir du lien publié (voici http://services.gradle.org/distributions/gradle-2.2.1-all.Zip ), collez-le dans un emplacement aime myApp\platforms\Android\gradle\gradle-2.2.1-all.Zip et dans build.js à partir de myApp\platforms\Android\cordova\lib\build.js trouvez ceci :

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

Et remplacez-le par l'emplacement de votre propre fichier:

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

Étant donné que la solution publiée ci-dessus doit inclure .Zip dans un dossier d'environ 55 Mo

Vous pouvez également forcer CLI à utiliser Ant à la place de dégradé lors d'une construction à l'aide de la commande suivante:

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

J'ai rencontré ce problème car notre proxy réseau bloque le téléchargement du fichier Zip. Voici ce que j'ai trouvé:

REMARQUE: cela diffère de la réponse "acceptée" en ce sens que nous ne modifions pas directement la bibliothèque de Cordova. C'est beaucoup moins sujet à "erreur" ou à être écrasé lorsque vous exécutez ionic state restore

  1. Télécharger gradle - http://services.gradle.org/distributions/gradle-2.2.1-all.Zip

  2. Mettez ce fichier dans platforms/Android/gradle. Toutefois, si vous intégrez cela dans votre processus de construction, vous pouvez vouloir le coller quelque part moins volatile et ajouter une étape pour copier le fichier à cet emplacement.

  3. Définissez la variable d'environnement CORDOVA_Android_GRADLE_DISTRIBUTION_URL sur ../gradle-2.2.1-all.Zip

    • linux/osx: ajoutez export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.Zip" à votre fichier ~/.bashrc
    • fenêtres: setx CORDOVA_Android_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.Zip
  4. Exécuter ionic build Android

21
Jeff Woodard

Une autre option de la ligne de commande consiste à exécuter $ export Java_OPTS="-Dhttp.proxyHost=proxy-url.com -Dhttp.proxyPort=911 -Dhttps.proxyHost=secure-proxy-url.com -Dhttps.proxyPort=911" avant la commande cordova build.

12
Lucas Massuh

Si vous souhaitez utiliser un proxy sur votre réseau, ajoutez un fichier gradle.properties dans %USER_HOME%/.gradle avec le ci-dessous, en remplaçant les valeurs par les détails de votre proxy. Cela a fonctionné pour moi.

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/Code Visual Studio 0.10.6

TL; DR

Téléchargez manuellement http://services.gradle.org/distributions/gradle-2.2.1-all.Zip.

Placez-le dans appName\platforms\Android\gradle\

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

Démarrer le code et compiler.

Explication:

GradleBuilder.js définit distributionUrl comme suit:

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

Le script s'exécute en appName\platforms\Android\gradle\wrapper

La sortie est:

Fichier à télécharger: //appname/platforms/Android/gradle/gradle-2.2.1-all.Zip

8
user5880697

Salut à tous j'ai eu le même problème. 

Dans le fichier plateformes\Android\cordova\lib\build.js, j’ai changé

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

et cela a fonctionné.

6
sid1337

J'ai eu le même problème, et il a été résolu avec la désinstallation de build-tools 24 et l'installation de build-tools 23 à partir de SDK Manager.

5
Emad Dehnavi

Sinon, si vous avez un serveur Web sur votre hôte local, téléchargez et mettez le gradle (exactement la version testée, c'est-à-dire http://downloads.gradle.org/distributions/gradle-2.2.1-all.Zip at l’heure de ce post) dans la racine www et remplacez le fichier plateformes\Android\cordova\lib\build.js de votre répertoire d’application par celui-ci:

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

Changer l'URL dans un fichier local (pas une adresse http) ne fonctionnerait pas pour moi sous Windows et il se plaindrait que l'URL a un protocole inconnu.

3
wmac

Il semble y avoir un problème pour les solutions précédentes. Au moins aucun d’entre eux n’a travaillé pour moi, et je l’ai simplement changé en:

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

Alors ça marche. Je ne sais pas pourquoi ils ajoutent tous "distributionUrl =" comme suit (cela ne fonctionne pas pour moi):

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

BTW, j'utilise ionique 2.

Faites attention au chemin si vous ne voulez pas utiliser localhost. Il ajoutera automatiquement myApp/platforms/Android/gradle/wrapper avant distributionUrl, par exemple si vous insérez gradle-2.2.1-all.Zip dans Le répertoire myApp/platforms/Android/gradle, vous devez définir:

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

J'ai récemment rencontré le même problème et j'ai cherché ici et là.

Enfin, pour la dernière version, j'ai trouvé la solution.

Après la commande "ionic platform add Android", accédez à plates-formes/Android/cordova/lib/builders/GradleBuilder.js

Rechercher

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

et changez le en

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

Il semble que Windows Defender ou un autre système antivirus gâche votre installation. Donc, désactivez temporairement votre pare-feu et réexécutez la commande:

ionic build Android (or ios)

A la fin, vous avez le message BUILD SUCCESSFUL ...

0
Theophane Fotso

Toutes les réponses ici disent toutes la même chose quand cela pourrait être fait plus facilement que la réponse du haut. La mise à jour de votre SDK Android devrait résoudre le problème, et vous pouvez le faire avec cette ligne du terminal:

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

ou

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

Voir aussi this numéro de mise en pension (c'est essentiellement le même problème).

Mais après avoir reconstruit, cela devrait fonctionner.

0
garrettmac

En ce qui concerne le développement ionique, vous devrez modifier l'URL de distribution dans GradleBuilder.js avec l'URL mentionnée ci-dessous.

/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