作为一个Android开发人员,你可能会使用自定义注解来做一些代码生成的工作。Java API已经提供了扫描源码并解析注解的框架,你可以继承AbstractProcessor类来提供实现自己的解析注解逻辑。
在开发时,你可能对如何调试自己的AbstractProcessor有些一筹莫展。本文将介绍如何使用Android Studio和gradle来调试你自己的AbstractProcessor(以Windows为例)。
第一步,在你代码中对init()方法或process()方法设置代码断点!
第二步,设置gradle daemon端口和JVM参数。把下面两行加入到你的gradle.properties文件。
gradle.properties所在位置
打开gradle.properties后加入如下参数
org.gradle.daemon=true
org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8013
端口8013可以自行指定。
第三步,在Android Studio建立Remote Debugger。
点击OK。
第四步,在Android Studio Terminal控制台中输入gradlew --daemon来启动守护线程。
gradlew --daemon
Terminal控制台输出信息如下:
然后切回ProcessorDebug并点击下图中的2按钮
点击2后Debug控制台输出信息如下:
然后在Terminal控制台中输入
gradlew clean assembleDebug
命令,该命令执行的过程中断点已经进来了,如下
然后就可以愉快的Debug了。
PS:在输入命令gradle --daemon命令时控制台可能会输出如下的错误
Unable to start the daemon process,出现该错误请参照点击打开链接进行解决,当时我的解决方法是删掉C:\Users\用户名\.gradle文件夹然后重启AS让它自己再编译一次解决的。