如何debug自定义AbstractProcessor

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

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


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


设置断点

第二步,设置gradle daemon端口和JVM参数。把下面两行加入到你的gradle.properties文件。(注意:修改后rebuild下工程
我的gradle.properties文件在哪里?

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

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

gradle --daemon

注意:这一步执行完成之后需要保证出现

BUILD SUCCESSFUL

Total time: 7.991 secs

因为可能会因为gradle版本问题出现启动线程不成功的问题。

第三步,在Android Studio建立Remote Debugger并运行它。(这里的运行是点击debug按钮



Remote Debugger 配置

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

debug运行截图如下


最后我们用gradle命令来运行构建。(或者直接rebuild工程即可

gradle 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】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值