When I try a task that involves a compileKotlin (or compileTestKotlin), then I receive this warning and the result is unpleasant long duration of the build process:

Could not perform incremental compilation: Could not connect to Kotlin compile daemon

无法连接到kotlin后台进程.使用后备策略.


我不确定这个问题是否与我的操作系统(Windows)有关,但我在一台装有Linux操作系统的远程机器上有同一个项目(带有同步文件),而这个问题在那里并不存在.请参见以下比较:

  1. 在我的远程机器(Linux)上的项目,Kotlin源(在一个模块中)有一点变化:

    $ ./gradlew build
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD SUCCESSFUL in 5s
    46 actionable tasks: 17 executed, 29 up-to-date
    
  2. 我的本地计算机(Windows)上的相同项目,具有相同的更改:

    > gradlew build                                                                                       
    
    > Task :backend:compileKotlin                                                                         
    Could not perform incremental compilation: Could not connect to Kotlin compile daemon                 
    无法连接到kotlin后台进程.使用后备策略.                                          
    
    warning: the '-d' option with a directory destination is ignored because '-Xbuild-file' is specified  
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.           
    Use '--warning-mode all' to show the individual deprecation warnings.                                 
    See https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings       
    
    BUILD SUCCESSFUL in 14s                                                                               
    46 actionable tasks: 17 executed, 29 up-to-date
    

尤其请参见上面两个示例(和the warning after 100 task on Windows machine)中的构建持续时间.尽管我的本地机器(Windows)有更强大的硬件,但结果却是相反的(Gradle daemon在这两个机器上都运行).


In order to further analyzability I also publish the output of gradle -v and java -version on both machines:

  1. Linux:

    $ ./gradlew -v
    
    ------------------------------------------------------------
    Gradle 5.0
    ------------------------------------------------------------
    
    Build time:   2018-11-26 11:48:43 UTC
    Revision:     7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987
    
    Kotlin DSL:   1.0.4
    Kotlin:       1.3.10
    Groovy:       2.5.4
    Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
    JVM:          11.0.1 (Oracle Corporation 11.0.1+13)
    OS:           Linux 3.10.0-862.11.6.el7.x86_64 amd64
    
    
    $ java -version
    openjdk version "1.8.0_191"
    OpenJDK Runtime Environment (build 1.8.0_191-b12)
    OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
    
  2. Windows:

    > gradlew -v                                                           
    
    ------------------------------------------------------------           
    Gradle 5.0                                                             
    ------------------------------------------------------------           
    
    Build time:   2018-11-26 11:48:43 UTC                                  
    Revision:     7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987                 
    
    Kotlin DSL:   1.0.4                                                    
    Kotlin:       1.3.10                                                   
    Groovy:       2.5.4                                                    
    Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018   
    JVM:          11.0.1 (Oracle Corporation 11.0.1+13)                    
    OS:           Windows 10 10.0 amd64
    
    
    > java -version                                                     
    openjdk version "11.0.1" 2018-10-16                          
    OpenJDK Runtime Environment 18.9 (build 11.0.1+13)           
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed mode)  
    

两台机器上的全局gradle.properties个文件完全相同(没有poject local gradle.properties file for none):

org.gradle.daemon=true
org.gradle.jvmargs=-Xmx1536m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true

(without comments)


更新1:

Gradle JVM设置为JDK 8时没有问题.但在JDK 9+中,你可以看到问题所在.


UPDATE 2:

我把我的Kotlin插件从1.3.10更新到了1.3.11.另外,测试了1.3.20-eap-52.但这个问题仍然存在.


UPDATE 3:

I ran Gradle's compileKotlin task with --debug option to get more information. The most important parts of the output are:

Note: Below tasks have been run when Gradle daemon was running, Kotlin compile daemon was stopped (if already running) and a little change has been made in a Kotlin source.

I. When using JDK 8 as Gradle's JVM (OK):

11:01:44 PM: Executing task 'compileKotlin --debug'...
...
22:58:20.512 [DEBUG] [org.gradle.api.Project] [KOTLIN] Kotlin compiler args: -Xadd-compiler-builtins -Xbuild-file=C:\Users\I\AppData\Local\Temp\kjps3085207010700515672GradleKotlinJVM.script.xml -classpath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.10\71d0fa967493eb76648b575edf1762cb2d0c7f10\kotlin-stdlib-jdk8-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.10\4d147bf43060dc43d61b096e24da1e67dfe0c032\kotlin-stdlib-jdk7-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar -d D:\Devel\IdeaProjects\GradleKotlinJVM\build\classes\kotlin\main -jvm-target 1.8 -Xload-builtins-from-dependencies -module-name GradleKotlinJVM -no-reflect -no-stdlib -Xplugin=D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-scripting-compiler-embeddable\1.3.10\e96a6125793c4ab0258119fcdce9d182f42d32b0\kotlin-scripting-compiler-embeddable-1.3.10.jar -verbose
...
22:58:33.515 [INFO] [org.gradle.api.Task] i: found daemon on port 17519 (270393 ms old), trying to connect
22:58:33.515 [INFO] [org.gradle.api.Task] i: cannot connect to registry: Connection refused: connect
22:58:33.515 [INFO] [org.gradle.api.Task] i: found fresh run file 'C:\Users\I\AppData\Local\kotlin\daemon\kotlin-daemon.2019-01-06T19-23-50.118Z.ef9f56f7564e12d191d0ba8e50b581f8.17519.run' (270393 ms old), but no daemon, ignoring it
22:58:33.515 [INFO] [org.gradle.api.Task] i: found daemon on port 17502 (63606 ms old), trying to connect
22:58:33.515 [INFO] [org.gradle.api.Task] i: cannot connect to registry: Connection refused: connect
22:58:33.515 [INFO] [org.gradle.api.Task] i: found fresh run file 'C:\Users\I\AppData\Local\kotlin\daemon\kotlin-daemon.2019-01-06T19-27-16.900Z.ef9f56f7564e12d191d0ba8e50b581f8.17502.run' (63606 ms old), but no daemon, ignoring it
22:58:33.515 [INFO] [org.gradle.api.Task] i: starting the daemon as: C:\Program Files\Java\openjdk1.8.0_202\jre\bin\java -cp D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar;C:\Program Files\Java\openjdk1.8.0_202\lib\tools.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx1536m -XX:MaxPermSize=512m -Dkotlin.environment.keepalive org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath C:\Users\I\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar;C:\Program Files\Java\openjdk1.8.0_202\lib\tools.jar
22:58:33.515 [INFO] [org.gradle.api.Task] i: Received the message signalling that the daemon is ready
22:58:33.516 [INFO] [org.gradle.api.Task] i: new daemon started, trying to find it
22:58:33.516 [INFO] [org.gradle.api.Task] i: found daemon on port 17519 (277256 ms old), trying to connect
22:58:33.516 [INFO] [org.gradle.api.Task] i: cannot connect to registry: Connection refused: connect
22:58:33.516 [INFO] [org.gradle.api.Task] i: found fresh run file 'C:\Users\I\AppData\Local\kotlin\daemon\kotlin-daemon.2019-01-06T19-23-50.118Z.ef9f56f7564e12d191d0ba8e50b581f8.17519.run' (277256 ms old), but no daemon, ignoring it
22:58:33.516 [INFO] [org.gradle.api.Task] i: found daemon on port 17502 (70469 ms old), trying to connect
22:58:33.516 [INFO] [org.gradle.api.Task] i: cannot connect to registry: Connection refused: connect
22:58:33.516 [INFO] [org.gradle.api.Task] i: found fresh run file 'C:\Users\I\AppData\Local\kotlin\daemon\kotlin-daemon.2019-01-06T19-27-16.900Z.ef9f56f7564e12d191d0ba8e50b581f8.17502.run' (70469 ms old), but no daemon, ignoring it
22:58:33.516 [INFO] [org.gradle.api.Task] i: found daemon on port 17507 (70 ms old), trying to connect
22:58:33.516 [INFO] [org.gradle.api.Task] i: connected to the daemon
22:58:33.518 [INFO] [org.gradle.api.Project] Options for KOTLIN DAEMON: IncrementalCompilationOptions(super=CompilationOptions(compilerMode=INCREMENTAL_COMPILER, targetPlatform=JVM, reportCategories=[0, 1, 2, 3, 4], reportSeverity=3, requestedCompilationResults=[0]), areFileChangesKnown=true, modifiedFiles=[D:\Devel\IdeaProjects\GradleKotlinJVM\src\main\kotlin\Main.kt], deletedFiles=[], workingDir=D:\Devel\IdeaProjects\GradleKotlinJVM\build\kotlin\compileKotlin, customCacheVersionFileName='gradle-format-version.txt', customCacheVersion=4, multiModuleICSettings=MultiModuleICSettings(buildHistoryFile=D:\Devel\IdeaProjects\GradleKotlinJVM\build\kotlin\compileKotlin\build-history.bin, useModuleDetection=false), usePreciseJavaTracking=truelocalStateDirs=[D:\Devel\IdeaProjects\GradleKotlinJVM\build\classes\kotlin\main])
22:58:33.524 [DEBUG] [sun.rmi.transport.tcp] Daemon worker: reuse connection
...
22:58:35.428 [DEBUG] [org.gradle.api.Project] [KOTLIN] [IC] compiling with args: [-Xadd-compiler-builtins, -Xbuild-file=C:\Users\I\AppData\Local\Temp\kjps6683894818132820708GradleKotlinJVM.script.xml, -classpath, D:\Devel\IdeaProjects\GradleKotlinJVM\build\classes\kotlin\main;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.10\71d0fa967493eb76648b575edf1762cb2d0c7f10\kotlin-stdlib-jdk8-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.10\4d147bf43060dc43d61b096e24da1e67dfe0c032\kotlin-stdlib-jdk7-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar, -jvm-target, 1.8, -Xload-builtins-from-dependencies, -module-name, GradleKotlinJVM, -no-reflect, -no-stdlib, -Xplugin=D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-scripting-compiler-embeddable\1.3.10\e96a6125793c4ab0258119fcdce9d182f42d32b0\kotlin-scripting-compiler-embeddable-1.3.10.jar, -Xreport-output-files, -verbose]
...
11:01:53 PM: Task execution finished 'compileKotlin --debug'.

II.使用JDK 11作为Gradle的JVM(Problem here)时:

11:01:44 PM: Executing task 'compileKotlin --debug'...
...
23:01:45.888 [DEBUG] [org.gradle.api.Project] [KOTLIN] Kotlin compiler args: -Xadd-compiler-builtins -Xbuild-file=C:\Users\I\AppData\Local\Temp\kjps11452575260818015211GradleKotlinJVM.script.xml -classpath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk8\1.3.10\71d0fa967493eb76648b575edf1762cb2d0c7f10\kotlin-stdlib-jdk8-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jdk7\1.3.10\4d147bf43060dc43d61b096e24da1e67dfe0c032\kotlin-stdlib-jdk7-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar -d D:\Devel\IdeaProjects\GradleKotlinJVM\build\classes\kotlin\main -jvm-target 1.8 -Xload-builtins-from-dependencies -module-name GradleKotlinJVM -no-reflect -no-stdlib -Xplugin=D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-scripting-compiler-embeddable\1.3.10\e96a6125793c4ab0258119fcdce9d182f42d32b0\kotlin-scripting-compiler-embeddable-1.3.10.jar -verbose
...
23:01:48.134 [INFO] [org.gradle.api.Task] i: starting the daemon as: C:\Program Files\Java\openjdk-11.0.1\bin\java -cp D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx1536m -XX:MaxPermSize=512m -Dkotlin.environment.keepalive org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath C:\Users\I\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar
23:01:48.134 [INFO] [org.gradle.api.Task] i: [daemon] OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
23:01:48.134 [INFO] [org.gradle.api.Task] i: Received the message signalling that the daemon is ready
23:01:48.134 [INFO] [org.gradle.api.Task] i: new daemon started, trying to find it
23:01:48.134 [INFO] [org.gradle.api.Task] i: starting the daemon as: C:\Program Files\Java\openjdk-11.0.1\bin\java -cp D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx1536m -XX:MaxPermSize=512m -Dkotlin.environment.keepalive org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath C:\Users\I\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar
23:01:48.134 [INFO] [org.gradle.api.Task] i: [daemon] OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
23:01:48.134 [INFO] [org.gradle.api.Task] i: Received the message signalling that the daemon is ready
23:01:48.134 [INFO] [org.gradle.api.Task] i: new daemon started, trying to find it
23:01:48.137 [WARN] [org.gradle.api.Project] Could not perform incremental compilation: Could not connect to Kotlin compile daemon
23:01:48.137 [WARN] [org.gradle.api.Project] 无法连接到kotlin后台进程.使用后备策略.
23:01:49.486 [LIFECYCLE] [system.err] 
23:01:49.486 [ERROR] [system.err] logging: using Kotlin home directory <no_path>
23:01:49.521 [ERROR] [system.err] logging: configuring the compilation environment
23:01:50.538 [ERROR] [system.err] logging: loading modules: [java.se, jdk.accessibility, jdk.attach, jdk.compiler, jdk.dynalink, jdk.httpserver, jdk.jartool, jdk.javadoc, jdk.jconsole, jdk.jdi, jdk.jfr, jdk.jshell, jdk.jsobject, jdk.management, jdk.management.jfr, jdk.net, jdk.scripting.nashorn, jdk.sctp, jdk.security.auth, jdk.security.jgss, jdk.unsupported, jdk.unsupported.desktop, jdk.xml.dom, java.base, java.compiler, java.datatransfer, java.desktop, java.xml, java.instrument, java.logging, java.management, java.management.rmi, java.rmi, java.naming, java.net.http, java.prefs, java.scripting, java.security.jgss, java.security.sasl, java.sql, java.transaction.xa, java.sql.rowset, java.xml.crypto, jdk.internal.jvmstat, jdk.management.agent, jdk.jdwp.agent, jdk.internal.ed, jdk.internal.le, jdk.internal.opt]
23:01:53.459 [ERROR] [system.err] warning: the '-d' option with a directory destination is ignored because '-Xbuild-file' is specified
...
11:01:53 PM: Task execution finished 'compileKotlin --debug'.

III.当使用JDK 11作为Gradle的JVM时,但在Linux(OK)上:

$ ./gradlew compileKotlin --debug
...
01:33:20.145 [INFO] [org.gradle.api.Task] i: starting the daemon as: /usr/local/jdk-11.0.1/bin/java -cp /usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.3.10/adc9e577de39fba3db6d60662892118afedd713/kotlin-compiler-embeddable-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.10/dd02865be0351707554b16a896b766b2396cdafa/kotlin-reflect-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.10/b178c1501609c6e4ee8be635513cb023a466457d/kotlin-stdlib-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.3.10/1d2bac36f99b84e1493244f12629bc0756a3ff90/kotlin-script-runtime-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.10/1b19d99229dcedad7caf50534dce38fe82845269/kotlin-stdlib-common-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx1536m -XX:MaxPermSize=512m -Dkotlin.environment.keepalive org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath /usr/share/nginx/html/0xy/.kotlin/daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath /usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.3.10/adc9e577de39fba3db6d60662892118afedd713/kotlin-compiler-embeddable-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.10/dd02865be0351707554b16a896b766b2396cdafa/kotlin-reflect-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.10/b178c1501609c6e4ee8be635513cb023a466457d/kotlin-stdlib-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.3.10/1d2bac36f99b84e1493244f12629bc0756a3ff90/kotlin-script-runtime-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.10/1b19d99229dcedad7caf50534dce38fe82845269/kotlin-stdlib-common-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar
01:33:20.145 [INFO] [org.gradle.api.Task] i: [daemon] OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
01:33:20.145 [INFO] [org.gradle.api.Task] i: Received the message signalling that the daemon is ready
01:33:20.145 [INFO] [org.gradle.api.Task] i: new daemon started, trying to find it
01:33:20.145 [INFO] [org.gradle.api.Task] i: found daemon on port 17613 (56 ms old), trying to connect
01:33:20.145 [INFO] [org.gradle.api.Task] i: connected to the daemon
01:33:20.145 [INFO] [org.gradle.api.Project] Options for KOTLIN DAEMON: IncrementalCompilationOptions(super=CompilationOptions(compilerMode=INCREMENTAL_COMPILER, targetPlatform=JVM, reportCategories=[0, 1, 2, 3, 4], reportSeverity=3, requestedCompilationResults=[0]), areFileChangesKnown=false, modifiedFiles=null, deletedFiles=null, workingDir=/usr/share/nginx/html/0xy/test/build/kotlin/compileKotlin, customCacheVersionFileName='gradle-format-version.txt', customCacheVersion=4, multiModuleICSettings=MultiModuleICSettings(buildHistoryFile=/usr/share/nginx/html/0xy/test/build/kotlin/compileKotlin/build-history.bin, useModuleDetection=false), usePreciseJavaTracking=truelocalStateDirs=[/usr/share/nginx/html/0xy/test/build/classes/kotlin/main])
...
01:33:21.920 [DEBUG] [org.gradle.api.Project] [KOTLIN] [IC] compiling with args: [-Xadd-compiler-builtins, -Xbuild-file=/tmp/kjps15100965302804914597GradleKotlinJVM.script.xml, -classpath, /usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.3.10/71d0fa967493eb76648b575edf1762cb2d0c7f10/kotlin-stdlib-jdk8-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.3.10/4d147bf43060dc43d61b096e24da1e67dfe0c032/kotlin-stdlib-jdk7-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.10/b178c1501609c6e4ee8be635513cb023a466457d/kotlin-stdlib-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.10/1b19d99229dcedad7caf50534dce38fe82845269/kotlin-stdlib-common-1.3.10.jar:/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar, -jvm-target, 1.8, -Xload-builtins-from-dependencies, -module-name, GradleKotlinJVM, -no-reflect, -no-stdlib, -Xplugin=/usr/share/nginx/html/0xy/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-scripting-compiler-embeddable/1.3.10/e96a6125793c4ab0258119fcdce9d182f42d32b0/kotlin-scripting-compiler-embeddable-1.3.10.jar, -Xreport-output-files, -verbose]
...

There are some suspected events in the above logs (second), but I can't exactly understand the meaning of them and that they are related to my problem or not:

  1. 为什么两次(完全相等)try 开始Kotlin compile daemon次?
  2. 有一些错误.但他们都是在警告Kotlin的守护程序问题之后.
  3. The latest error/warning:

    [ERROR] [system.err] warning: the '-d' option with a directory destination is ignored because '-Xbuild-file' is specified
    

    是最可疑的事情!因为这是你在其他日志(log)中找不到的唯一信息.另见here.我在another post年问过.

推荐答案

Finally, I found the source of the issue ... After some days!

I found out the issue is from my user account. So decided to revert any user-dependent thing to its first state. During clearing Temp folder (in AppData\local\) accidentally I saw these files:

kotlin-daemon.Û²Û°Û±Û¹-Û°Û±-Û°Û¸.Û°Û³-ÛµÛ´-Û±Û²-Û¶Û´Û¸.00.log
kotlin-daemon.Û²Û°Û±Û¹-Û°Û±-Û°Û¸.Û°Û³-ÛµÛ´-Û±Û²-Û¶Û´Û¸.00.log

对问题来自unicode encoding issues(可能在NTFSUTF-8之间)!虽然这是log个文件,它们的名字可能并不重要,但这个问题可能存在于其他地方!

As you can guess, damaged part of file names are date & time. So (unfortunately) I forced to revert my personalizations of Windows user account's date & time formats from my favorite (Persian (Iran)) to English (United States):

enter image description here

And the problem solved immediately:

> wmic process where "name='java.exe'" get processId, executablePath, commandLine /format:list

CommandLine=D:\Devel\JDK\openjdk-11.0.1\bin\java.exe -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED -Xmx1536m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp D:\Devel\.gradle\wrapper\dists\gradle-5.0-all\4mxuau4c77thx8zlvtz4xiez7\gradle-5.0\lib\gradle-launcher-5.0.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 5.0
ExecutablePath=D:\Devel\JDK\openjdk-11.0.1\bin\java.exe
ProcessId=9168

CommandLine=D:\Devel\JDK\openjdk-11.0.1\bin\java -cp D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar -Djava.awt.headless=true -Djava.rmi.server.hostname=127.0.0.1 -Xmx1536m -XX:MaxPermSize=512m -Dkotlin.environment.keepalive org.jetbrains.kotlin.daemon.KotlinCompileDaemon --daemon-runFilesPath C:\Users\I\AppData\Local\kotlin\daemon --daemon-autoshutdownIdleSeconds=7200 --daemon-compilerClasspath D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.3.10\adc9e577de39fba3db6d60662892118afedd713\kotlin-compiler-embeddable-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-reflect\1.3.10\dd02865be0351707554b16a896b766b2396cdafa\kotlin-reflect-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib\1.3.10\b178c1501609c6e4ee8be635513cb023a466457d\kotlin-stdlib-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-script-runtime\1.3.10\1d2bac36f99b84e1493244f12629bc0756a3ff90\kotlin-script-runtime-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-common\1.3.10\1b19d99229dcedad7caf50534dce38fe82845269\kotlin-stdlib-common-1.3.10.jar;D:\Devel\.gradle\caches\modules-2\files-2.1\org.jetbrains\annotations\13.0\919f0dfe192fb4e063e7dacadee7f8bb9a2672a9\annotations-13.0.jar
ExecutablePath=D:\Devel\JDK\openjdk-11.0.1\bin\java.exe
ProcessId=12088

The second process is Kotlin compile daemon.


还有log个文件:

kotlin-daemon.2019-01-08.03-51-11-111.00.log
kotlin-daemon.2019-01-08.03-51-11-111.00.log.lck

(Note that .log.lck file didn't exist in previous state!)

Kotlin相关问答推荐

用浮点数或十进制数给出错误答案的阶乘计算

何时使用figureEach

新的jOOQ Gradle插件无法正确处理自引用关系

Kotlin 中命名构造函数的惯用方式

Kotlin 函数中接收者和参数的类型相同

如何在 Kotlin 中将with代码转换为完整代码?

Jetpack Compose - 单击 LazyColumn 的项目时应用程序崩溃

我什么时候可以在 LazyList 或 Column 的范围内使用 Composable?

Kotlin 有垃圾收集器吗?如果是这样,它基于哪种算法?

如何使用 Android CameraX 自动对焦

禁用 Android 12 默认启动画面

什么是 .kotlin_builtins 文件,我可以从我的 uberjars 中省略它们吗?

在 Spring Framework 5.1 中注册具有相同名称的测试 bean

包括登录Elvis operator?

Kotlin:如何在活页夹中返回正在运行的服务实例?

如何在 Jetpack Compose 的 LazyColumn/LazyRow 中禁用和启用滚动?

Kotlin中保留的关键字是什么?

Kotlin var lazy init

Kotlin Flow 收集后无法执行代码

从 java 活动 *.java 启动 kotlin 活动 *.kt?