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)
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';
É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
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
Télécharger gradle - http://services.gradle.org/distributions/gradle-2.2.1-all.Zip
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.
Définissez la variable d'environnement CORDOVA_Android_GRADLE_DISTRIBUTION_URL
sur ../gradle-2.2.1-all.Zip
export CORDOVA_Android_GRADLE_DISTRIBUTION_URL="../gradle-2.2.1-all.Zip"
à votre fichier ~/.bashrcsetx CORDOVA_Android_GRADLE_DISTRIBUTION_URL ../gradle-2.2.1-all.Zip
Exécuter ionic build Android
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.
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
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
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é.
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.
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.
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';
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
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 ...
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.
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';