2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Android Studio/Kotlinでクリーンビルド以外でいつもビルドエラーになるときの対策

2
Last updated at Posted at 2018-01-12

下記のようなAndroidプロジェクトでクリーンビルド以外でいつもビルドエラーで困っていたのを対策したのでメモ。

環境

  • kotlin v1.1.0
  • gradle v2.3.0
  • Android Studio 3.0.1
  • moduleが8個

出てくるビルドエラー

クリーンビルドでは発生せず、その後のビルドで

java.lang.IllegalStateException: Service is dying
        at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Dying.get(CompileService.kt:55)
        at org.jetbrains.kotlin.daemon.common.CompileService$CallResult$Dying.get(CompileService.kt:54)
        at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner$newDaemonConnection$connection$1.invoke(KotlinCompilerRunner.kt:70)
        at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner$newDaemonConnection$connection$1.invoke(KotlinCompilerRunner.kt:47)
        at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)
        at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner.newDaemonConnection(KotlinCompilerRunner.kt:68)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.getDaemonConnection(GradleKotlinCompilerRunner.kt:239)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.getDaemonConnection(GradleKotlinCompilerRunner.kt:46)
        at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner.withDaemon(KotlinCompilerRunner.kt:178)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.performIncrementalCompilationWithDaemon(GradleKotlinCompilerRunner.kt:160)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.compileWithDaemon(GradleKotlinCompilerRunner.kt:140)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.doRunCompiler(GradleKotlinCompilerRunner.kt:119)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.doRunCompiler(GradleKotlinCompilerRunner.kt:46)
        at org.jetbrains.kotlin.compilerRunner.KotlinCompilerRunner.runCompiler(KotlinCompilerRunner.kt:121)
        at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runJvmCompiler(GradleKotlinCompilerRunner.kt:85)
        at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:214)
        at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:125)
        at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:112)
        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)

対策

androidProject/gradle.propertiesを下記のように修正してAndroid Studioを再起動。

変更前
org.gradle.parallel=true
変更後
org.gradle.parallel=false

stackoverflowやyoutrack.jetbrains.com内の識者によるとこれはjetbrainsに上がっているissue/KT-15562の問題らしく、具体的にはkotlin 1.0~1.2辺りでgradleを並列ビルドにした場合に発生するらしい。
なので、上記のようにgradle.propertiesにorg.gradle.parallel=falseを記載してからAndroid Studioを再起動で対策できた。gradleデーモン動いていたらターミナルで$ ./gradlew --stopした方がよさそう。
kotlin.incremental=trueでもこの問題が発生するようなことが書いてありますが、自分の環境ではkotlin.incremental=trueを入れても大丈夫でした。上記だけではビルドエラーが解決しない場合はkotlin.incremental=falseもgradle.propertiesに追記して見ても良いかもしれないです。特にkotlin 1.1.1以降利用の場合は(kotlin 1.1.1以降はデフォルトでkotlinのインクリメンタルビルドが有効らしいので)。

この問題はチーム内では自分の環境だけで発生しているようだったので、実際はユーザー/.gradle/gradle.propertiesに上記修正後の内容を追記しました。

参考

https://stackoverflow.com/questions/44429723/kotlin-compiler-in-android-application-connection-refused-to-host-127-0-0-1
https://youtrack.jetbrains.com/issue/KT-15562
https://kotlinlang.org/docs/reference/using-gradle.html

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?