Android Studioで正常にビルドされるAndroidプロジェクトがあります。
今、私はジェンキンスでそれを構築したい。しかし、私がやっていると、次のエラーが発生しました:Gradleビルドデーモンが突然消えました(殺されたかクラッシュした可能性があります)
例外は次のとおりです。
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)
関連するトピックを読みましたが、役に立ちません。私はgradleデーモンを使用して、それなしでビルドしようとしましたが、問題はまだ存在します。
EDITGradleの新しいバージョンにはいくつかの変更があったようです。
開発者のマシンと継続的インテグレーションサーバーの両方に[デーモン]を使用することをお勧めします。
ただし、デーモンがCIビルドを不安定にする疑いがある場合は、ランタイムが以前のビルドから完全に分離されているため、各ビルドに新しいランタイムを使用するためにデーモンを無効にすることができます。
前の回答
CIサーバーでdaemon
をオフにすることをお勧めします 。このオプションを使用して無効にします
--no-daemon
このクラッシュを取得した後、CIサーバーでGradleDaemonの実行を停止するためにいくつかのことを試みました。どれも機能しませんでした。
Gradle.orgフォーラムで、GradleDaemonが常に実行されることを示唆する答えを見つけました。 --no-daemonフラグは、無期限に継続するのではなく、この特定のビルドで実行するだけです。
フォークを必要とするJVM引数を指定すると、Gradleは新しいJVMをフォークします。デーモンプロセスが必要かどうかに関係なく、実行されるクラスはGradleDaemonと呼ばれます。 --no-daemonスイッチを使用すると、長時間実行されているデーモンプロセスではなく、フォークされたプロセスが単独で使用されますが、GradleDaemonクラスは引き続き実行されます。
ソース: https://discuss.gradle.org/t/no-daemon-switch-ineffective-if-jvm-settings-cause-new-fork/14919/5
私はこれを間違って読んでいる可能性があり、答えの妥当性を保証することはできませんが、このエラーの原因はGradleのメモリ不足だけだと思います。常にGradleDaemonを実行します。
だから私は追加しました
org.gradle.jvmargs=-Xmx1024m
~/.gradle/gradle.properties
ファイルに追加すると、そのエラーは表示されなくなりました。
メモリ関連の問題のようです。それにもかかわらず、Olegが示唆するようにデーモンを無効にすることは助けになるようです。
つかいます
org.gradle.daemon = false
に
gradle.properties
〜/ .gradleフォルダーまたはプロジェクトのフォルダーのいずれか。
参照: https://docs.gradle.org/current/userguide/gradle_daemon.html#sec:disabling_the_daemon
私たちのケースでは、CIサーバーが非ASCII文字(つまり、コミット作成者の名前)を含む環境変数を渡すことにより問題が発生しました。
Gradleプロパティにfile.encoding=utf-8
を追加すると、すぐに問題が修正されました。
それは全くばかげているので、誰もこれに遭遇することはできませんが...
私の問題はコミットメッセージに奇妙な文字が存在する ...絵文字を含むgitlabから以前のコミットメッセージをコピーし、通常の代わりにマージリクエストのタイトルに貼り付けました:bug:
構文。
akruの答えは正しい方向に私を向けるのに役立ちました????
gradle -Dorg.gradle.jvmargs=-Xmx1536m assembleDebug
または、org.gradle.jvmargs=-Xmx1536m
をgradle.propertiesファイルに追加します。
Gradle build daemon disappeared unexpectedly
は、多くの場合、gradle自体またはJavaクラッシュさえ意味します。私の場合、それはJava
でした。バグレポートに記入: https://bugzilla.redhat.com/show_bug.cgi?id=1408857
次のような名前のファイルを見てください。hs_err_pid%p.log
ここで、%pは、gradle
タスクを実行しているディレクトリのプロセスのPIDです。
更新: gradle自体の問題 のように見えます。私の場合、ネイティブjansi
を使用しているためです。問題で提供された回避策:
ln -sb /dev/null /home/pasha/.gradle/native/jansi/1.17.1/linux64/libjansi.so
--no-daemon
ソリューションを試しましたが、同じDaemonDisappearedException
でビルドが失敗し続けました。
Jenkinsを実行しているサーバーのRAMを増やすことでこれを解決しました。 AWS EC2では、EC2インスタンスタイプを増やす必要があり、その結果RAMが増加しました。
うわー、私の場合はAndroid Studioを閉じてから再び開くとうまくいき、エラーはなくなりました。 :)
私の場合、Android studioプロジェクトをアップグレードし、コードを難読化するためにZelixKlassMaster
を使用しました。問題は、Zelixのクラスパスを27
に設定しました私のプロジェクトはAndroid 28
を使用していましたが、これが今後のデバッグで私のseed
ファイルがこのエラーを出力するのに役立つことを願っています
ERROR: Invalid classpath in "classpath" statement at line 69 : "C:\Users\Rab\AppData\Local\Android\Sdk\platforms\Android-27\Android.jar" is not a valid path.
Windows 7でAndroid Studioを使用していて、このエラーが表示されました。私のために働いたのは、Windows TaskManagerからJava.exeを殺すことです。
時々Build-> Clean Project worksを実行するだけです-他のgradleファイルの変更を始める前に試してみてください。