2016-05-11 12 views
24

Ho un progetto Android che si integra correttamente su Android Studio.Il demone di compilazione di gradle è scomparso inaspettatamente (potrebbe essere stato ucciso o potrebbe essersi arrestato in modo anomalo) durante la creazione di un progetto Android su Jenkins

Ora voglio costruirlo su Jenkins. Ma quando sto facendo ho ottenuto il seguente errore: Gradle costruire demone scomparve inaspettatamente (potrebbe essere stato ucciso o potrebbe essere caduto)

eccezione è:

org.gradle.launcher.daemon.client.DaemonDisappearedException: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed) 
    at org.gradle.launcher.daemon.client.DaemonClient.handleDaemonDisappearance(DaemonClient.java:222) 
    at org.gradle.launcher.daemon.client.DaemonClient.monitorBuild(DaemonClient.java:198) 
    at org.gradle.launcher.daemon.client.DaemonClient.executeBuild(DaemonClient.java:162) 
    at org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:125) 
    at org.gradle.launcher.daemon.client.DaemonClient.execute(DaemonClient.java:80) 
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:43) 
    at org.gradle.internal.Actions$RunnableActionAdapter.execute(Actions.java:173) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:241) 
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:214) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:35) 
    at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:207) 
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
    at org.gradle.launcher.Main.doAction(Main.java:33) 
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:55) 
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:36) 
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23) 

leggo argomenti correlati, ma non aiuta. Ho provato a crearlo usando demone gradle e senza di esso, ma il problema esiste ancora.

+0

Ho già risposto a questo link [questo è da un altro post] (https://stackoverflow.com/a/44693275/5832732) –

risposta

21

It's recommended to turn off daemon on any CI server. utilizzare questa opzione per disattivarlo

--no-daemon 
+1

Ho provato a costruire senza daemon, ma poi ho avuto un errore di memoria. Quando sto provando ad aumentare il limite di memoria, ho nuovamente ricevuto un errore Daemon. È possibile che il server su cui jenkins è in esecuzione abbia una memoria bassa? –

+13

E ho costruito con '--no-daemon' e sta ancora dando' demone di build Gradle scomparso inaspettatamente (potrebbe essere stato ucciso o potrebbe essere andato in crash) '. Più particolare. –

+4

Sto ottenendo la stessa cosa, ho aggiunto --no-daemon e poi ho controllato i log di compilazione, dice esplicitamente "senza demoni all'avvio". Qualcuno sa come ucciderlo davvero? –

0

Gradle build daemon disappeared unexpectedly in molti casi significano Gradle per sé o anche Java si è schiantato. Nel mio caso era java. bugreport riempito: https://bugzilla.redhat.com/show_bug.cgi?id=1408857

sguardo al file denominati come: hs_err_pid%p.log dove% p è PID del processo nella directory da quello che si sta esegue gradle compito.

1

Ho provato la soluzione ma la mia build ha continuato a fallire con lo stesso DaemonDisappearedException.

Ho risolto ciò aumentando la RAM del server su cui sto eseguendo Jenkins. In AWS EC2 ciò significava dover aumentare il tipo di istanza EC2 che si traduce in un aumento della RAM.

4

Dopo aver ottenuto questo incidente ho provato diverse cose per ottenere il GradleDaemon a smettere di correre sul mio server CI. Nessuno dei quali ha funzionato.

Ho trovato una risposta su un forum gradle.org che suggeriva che il GradleDaemon avrebbe sempre eseguito comunque. Il flag --no-daemon lo farebbe girare per questa build specifica piuttosto che rimanere indefinitamente.

If you specify JVM arguments that require forking, Gradle will fork a new JVM. Regardless of whether or not you want a daemon process, the class that runs is called GradleDaemon. The --no-daemon switch should cause the forked process to be single use instead of a long running daemon process, but it's still going to run the GradleDaemon class.

Fonte: https://discuss.gradle.org/t/no-daemon-switch-ineffective-if-jvm-settings-cause-new-fork/14919/5

I può essere la lettura di questo male e non posso garantire per la validità della risposta, ma penso che la causa di questo errore è solo una mancanza di memoria per Gradle. Come sempre esegue il GradleDaemon.

così ho aggiunto

org.gradle.jvmargs=-Xmx1024m 

al mio file ~/.gradle/gradle.properties e mi ha dato più quell'errore.

+0

perfetto, che ha aiutato, grazie –

+1

non funziona in il mio caso. –

0

Stavo usando Android Studio in Windows 7 e poi è apparso questo errore. Ciò che ha funzionato per me è uccidere Java.exe da TaskManager di Windows.

4

Nel nostro caso il problema è stato causato dal server CI che trasmette variabili di ambiente con caratteri non ascii (ad esempio nei nomi degli autori di commit).

L'aggiunta di file.encoding=utf-8 alle proprietà Gradle ha risolto immediatamente il problema.

0
gradle -Dorg.gradle.jvmargs=-Xmx1536m assembleDebug 

O Aggiungi file org.gradle.jvmargs=-Xmx1536m a gradle.properties.

Problemi correlati