另一个答案通常是正确的,但我发现https://medium.com/@daptronic/annotation-processing-with-kapt-and-gradle-237793f2be57有助于了解更多细节。
你可以运行这样的东西
./gradlew --no-daemon clean compileDebugKotlin -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=5005\,server=y\,suspend=n"
或者如果你想运行一个特定的模块
./gradlew --no-daemon :modulename:clean :modulename:compileDebugKotlin -Dkotlin.daemon.jvm.options="-Xdebug,-Xrunjdwp:transport=dt_socket\,address=5005\,server=y\,suspend=n"
棘手的部分
在附加调试器之前,我们实际上需要等待 Kotlin 编译任务开始,它不会像 java 那样暂停并等待您附加调试器。
所以你想监控你的构建并寻找任务:
:app:kaptDebugKotlin
当你看到它时,立即前往你的 IDE 并在你的远程配置上点击调试。如果您不及时附加,任务将继续进行。你有几秒钟的时间来弄清楚它,但要让它全部工作起来有点竞争。
这让我花了很长时间才弄清楚并开始工作。现在,只要我运行命令,我就去 IDE 并混合调试器按钮,我很幸运能够以这种方式附加它。