断点调试 APT 和 Gradle Plugin

本文会讲解如何在 IDE(AS、Intellij)下 debug 断点调试注解处理器 APT(Annotation Processing Tool) 和 gradle plugin,帮你摆脱只能打印日志调试的窘境。

调试步骤

  1. 设置 Remote configuration
  • 打开 Edit Configurations,

toolbar-edit configurations

  • 点击左上角 + 号,创建一个 Remote configuration,上面名字随便写,我写了 debug,port 端口设置为 5005,点击 ok 即可。

  1. 在 IDE Terminal 下,输入如下命令:
1
./gradlew clean :moduleName:assembleDebug -Dorg.gradle.debug=true --no-daemon

之后这个进程就会一直等待,知道我们 attach 我们的调试进程进来。执行命令后如图:

  1. 下断点

这一步需要你去具体代码里打上断点,比如:android apt 去具体 abstractProcessor 处理器类打断点。

  1. 启动远程调试器
  • 点击 debug 按钮连接上远程调试器进行调试

debug attach

  • 可以看到 connected to target VM 等信息输出就表示已连接到了远程服务器,之后就是正常的调试了

  • 连接上远程服务器之后,可以发现我们刚刚运行的命令已经开始执行了,这时候静代码执行到我们断点处

最后附上一张调试的图片:

遇到的错误

  • Android APT 死活不能自动生成?

由于 Android Gradle 构建版本问题引起,之前设置的是 gradle 版本 5.1.1 + android gradle 3.4.1,修改成 4.4 + 3.1.4 解决。建议 3.3.2 + 4.10.1 以下都可以。具体可以参考这篇博客

总结

调试步骤其实很简单,分如下两步即可:

  • 新建 remote target
  • 在命令行输入执行 ./gradlew --no-daemon -Dorg.gradle.debug=true :moduleName:assembleDebug
  • 之后选择刚刚创建的 remote target,然后点击调试按钮即可

参考

都看到这了,不打赏下?您的支持将鼓励我继续创作!:)