web-dev-qa-db-fra.com

ionic Android build - pas assez de mémoire pour démarrer jvm

En essayant de créer un fichier apk Android en utilisant ionic et gradle, j'obtiens une erreur 

FAILURE: Build failed with an exception.

* What went wrong:
Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at http://gradle.org/docs/2
.2.1/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.

D:\test\platforms\Android\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s /c "D:\test\platforms\Android\gradle
w cdvBuildDebug -b D:\test\platforms\Android\build.gradle -Dorg.gradle.daemon=tr
ue"
ERROR building one of the platforms: Error: D:\test\platforms\Android\cordova\bu
ild.bat: Command failed with exit code 1
You may not have the required environment or OS to build this project
Error: D:\test\platforms\Android\cordova\build.bat: Command failed with exit cod
e 1
    at ChildProcess.whenDone (C:\Users\9923\AppData\Roaming\npm\node_modules\cor
dova\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'essaie de le faire sur un bureau Windows 7. Mes paramètres de mémoire Java sont les suivants.

D:\test>Java -XX:+PrintFlagsFinal -version | findstr /i "HeapSize PermSize Threa
dStackSize"
     intx CompilerThreadStackSize                   = 0               {pd produc
t}
    uintx ErgoHeapSizeLimit                         = 0               {product}
    uintx HeapSizePerGCThread                       = 87241520        {product}
    uintx InitialHeapSize                          := 67108864        {product}
    uintx LargePageHeapSizeThreshold                = 134217728       {product}
    uintx MaxHeapSize                              := 1044381696      {product}
     intx ThreadStackSize                           = 0               {pd produc
t}
     intx VMThreadStackSize                         = 0               {pd produc
t}
Java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

J'ai essayé de configurer -Xms et -Xmx à de nombreux endroits, mais le système n'est tout simplement pas en mesure de le démarrer. Comment puis-je résoudre ce problème?

J'ai changé le 

Ajout de Java_OPTS dans Poste de travail> Propriétés> Environment Variables
Ajouté Java_OPTS dans dx.bat dans le SDK Android
Ajouté Java_OPTS dans build.bat dans le dossier de l'application
Changé Java_OPTS dans gradle.properties

S'il vous plaît aider

12
aksappy

Ce problème s’est avéré spécifique à l’environnement. Afficher la réponse uniquement pour aider ceux qui pourraient avoir ce problème malheureux.

Le problème a été résolu en installant un JDK 32 bits sur Windows 7 64 bits.

Avant l'installation

  1. Supprimez toutes les installations JRE et JDK en accédant au gestionnaire d'applications.
  2. Supprimez toutes les variables d'environnement relatives à votre ancienne installation Java.
  3. Mettre à jour/Supprimer toutes les entrées liées à Java de la variable Path. (Ne pas supprimer la variable de chemin)
  4. Redémarrez le système
  5. Installez le JDK téléchargé 
  6. Aller aux variables d'environnement et ajouter les clés requises
  7. Mettre à jour la variable Path pour inclure le dossier bin JDK

Je ne sais pas pourquoi cela est arrivé, mais le problème a été résolu.

4
aksappy

La solution de Barlrog30 n'a pas fonctionné pour moi, mais m'a inspiré.

Voici ce qui fonctionne pour moi:

Définissez un environnement vairable GRADLE_OPTS avec la valeur -Dorg.gradle.jvmargs=-Xmx512m

J'utilise:

Windows 7 64bit + Jdk 32bit + cordova 5.3.1
19
Changwang Zhang

J'ai eu le même problème. J'ai lu votre réponse et pensé: "Cela semble être beaucoup trop de travail." Alors j'ai continué à creuser.

J'ai trouvé cette réponse: https://stackoverflow.com/a/9813900/3771976

Il est dit de définir une variable d’environnement: GRADLE_OPTS=-Xmx512m

J'ai dû augmenter la limite de mémoire jusqu'à 1024, mais le problème a été résolu.

Documentation Oracle pour JVM Option

1
nbering

Modifiez l'argument -Xmx2048m en 1024 ou 512 à la ligne: args.Push ('- Dorg.gradle.jvmargs = -Xmx1024m'); dans votre dossier de projet 

platforms\Android\cordova\lib\builders\GradleBuilder.js

C'est un travail pour moi !!

0
Aakash Thakur

Dans mon cas, je devais simplement mettre toutes les variables d’environnement pour JRE (Java Runtime Environment) et JDK (Java Development Kit) à la version 64 bits.

Pour ce faire, je suis allé sur le site Web d'Oracle , et j'ai simplement téléchargé les fichiers JRE et JDK 64 bits.

Lors de l'installation, j'ai vérifié qu'il était bien installé dans C:\Program Files\Java et pas dans C:\Program Files (x86)\Java,

Ensuite, je règle la variable d'environnement:

 - Java_HOME: C:\Program Files\Java\jdk1.8.0_121
 - Path: "C:\Program Files\Java\jre1.8.0_121\bin" and "C:\Program Files\Java\jdk1.8.0_121\bin"

J'espère que ça aide!

0
Nicolas

Essayez de désinstaller Intel® Hardware Accelerated Execution Manager, puis réessayez. 

0
1nteger