2015-05-20 9 views
11

Quando si tenta di creare un file apk Android utilizzando ionica e Gradle, ottengo un erroreionico Android accumulo - la memoria non è sufficiente per avviare la JVM

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) 

che sto cercando di fare questo su un Windows 7 Desktop. Le mie impostazioni di memoria Java sono le seguenti.

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) 

ho provato a installare -Xms e -Xmx in numerosi luoghi, ma il sistema non è solo in grado di avviarlo. Come risolvo questo problema?

ho cambiato il

Aggiunto JAVA_OPTS in Risorse del computer> Proprietà>Environment Variables
Aggiunto JAVA_OPTS in dx.bat nel SDK di Android
Aggiunto JAVA_OPTS in build.bat all'interno della cartella dell'applicazione
JAVA_OPTS Modificato nella gradle.properties

Per favore aiuto

+0

Sei in Windows a 64 bit? Se questo è il caso, dovresti controllare se hai jdk per 64-bit. – Keval

+0

Per i ragazzi che cercano di risolvere questo problema, questo mi ha aiutato - http://stackoverflow.com/a/34636929/3748701 –

risposta

2

Questo problema è risultato essere specifico per l'ambiente. Pubblicare la risposta solo per aiutare coloro che potrebbero avere questo problema sfortunato.

Il problema è stato risolto con l'installazione di un JDK a 32 bit sul bit 64 di Windows 7.

Prima di installare

  1. Rimuovi tutti i JRE e JDK installazione andando a Application Manager
  2. Rimuovere tutte le variabili di ambiente relative alla vecchia installazione Java
  3. Aggiorna/Rimuovi tutte le voci relative a Java dalla variabile Path. (Non rimuovere la variabile del percorso)
  4. Riavviare il sistema
  5. Installare il scaricato JDK
  6. Vai a variabili di ambiente e aggiungere le chiavi necessarie
  7. aggiornare la variabile PATH per includere la cartella bin JDK

Non ho idea del perché questo è successo, ma il problema è stato risolto.

+1

Ho dovuto installare il JDK a 64 bit nel mio caso (in precedenza aveva il 32 bit). Ma questa risposta mi ha portato alla soluzione giusta! – lordjeb

+0

Quindi, qual è il vero problema qui? La RAM predefinita di gradle è maggiore di 3 GB? –

1

Ho avuto lo stesso problema. Ho letto la tua risposta e ho pensato: "Sembra troppo lavoro". Quindi, ho continuato a scavare.

ho trovato questa risposta: https://stackoverflow.com/a/9813900/3771976

Dice di impostare una variabile di ambiente: GRADLE_OPTS=-Xmx512m

ho dovuto aumentare il limite di memoria ulteriormente a 1024, ma ha risolto il problema.

Oracle Documentation for JVM Option

+0

Lasciami provare questa volta, qual è l'impostazione predefinita, sai? – aksappy

+0

Ho aggiunto un collegamento a Oracle JVM Docs per questa opzione. Sembra che il valore predefinito dipenda dal tuo ambiente. Ulteriori letture mostrano anche che 'GRADLE_OPTS' è esattamente lo stesso di' JAVE_OPTS', tranne che è specifico per il sistema di build Gradle. – nbering

+0

Penso che valga anche la pena notare che non ho avuto problemi fino a quando non ho aggiunto un altro plug-in Cordova, e poi all'improvviso si è verificato questo problema. Quindi la memoria richiesta sembra essere correlata a ciò che stai costruendo. – nbering

18

soluzione Barlrog30 non ha funzionato per me, ma mi ha ispirato.

Ecco ciò che funziona per me:

Impostare un ambiente vairable GRADLE_OPTS al valore di -Dorg.gradle.jvmargs=-Xmx512m

sto usando:

Windows 7 64bit + Jdk 32bit + cordova 5.3.1 
+0

Intendevi "La soluzione di Barlrog30 non ha funzionato per te"? – aksappy

+0

GRADLE_OPTS = -Xmx512m non funziona per me. –

+0

Questo ha funzionato per me – GONeale

0

provare a disinstallare Intel® Hardware Accelerated Execution Manager e poi riprova.

+1

dovresti commentarlo o modificare e migliorare la tua domanda –

0

Nel mio caso ho dovuto solo mettere tutte le mie variabili di ambiente per Java Runtime Environment (JRE) e Java Development Kit (JDK) alla versione a 64 bit.

Per fare ciò, sono passato a oracle's website e ho scaricato semplicemente JRE e JDK a 64 bit.

Durante l'installazione ho controllato è stato ben installato in C:\Program Files\Java e non inC:\Program Files (x86)\Java,

Poi ho impostato la variabile Environnment:

- 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" 

Speranza che aiuta!

0

Cambia argomento -Xmx20484m a 1024 o 512 alla riga: args.push ('- Dorg.gradle.jvmargs = -Xmx1024m'); nel progetto il file

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

E 'un lavoro per me !!

Problemi correlati