×
广告

如何debug自定义AbstractProcessor

96
HunkDeng
2016.01.05 22:34* 字数 342

作为一个Android / Java开发人员,你可能会使用自定义注解来做一些代码生成的工作。Java API已经提供了扫描源码并解析注解的框架,你可以继承AbstractProcessor类来提供实现自己的解析注解逻辑。

在开发时,你可能对如何调试自己的AbstractProcessor有些一筹莫展。本文将介绍如何使用Android Studio和gradle来调试你自己的AbstractProcessor。


第一步,在你代码中对init()方法或process()方法设置代码断点!

设置断点

第二步,设置gradle daemon端口和JVM参数。把下面两行加入到你的gradle.properties文件。
我的gradle.properties文件在哪里?

org.gradle.daemon=true
org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

在命令行中运行gradle daemon来启动守护线程。

gradle --daemon

第三步,在Android Studio建立Remote Debugger并运行它。

Remote Debugger 配置

我们在这里使用默认设置,IP:localhost,端口:5005。一旦你完成并运行它,那它就会连接到daemon线程中了。

最后我们用gradle命令来运行构建。

gradle clean assembleDebug

既然我们已经启动了守护线程,Remote Debugger将触发断点并挂起构建运行。完成!


感谢以下文章!

  1. Debugging an annotation processor in every IDE
  2. Debug an Android annotation processor with gradle and IntelliJ (or Eclipse)
  3. Annotation实战【自定义AbstractProcessor】
Android技巧
Web note ad 1