ButterKnife源码梳理过程中如何调试AbstractProcessor

1.需要在自定义的AbstractProcessor类中设置断点,init()方法是入口。所以在此处设置断点。
2.设置gradle daemon端口和JVM参数,在gradle.propertues加入

org.gradle.daemon=true //守护线程
org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005//设置端口

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

gradlew --daemon

在Android Studio建立Remote Debugger并运行它。
建立过程如图
ButterKnife源码梳理过程中如何调试AbstractProcessor
ButterKnife源码梳理过程中如何调试AbstractProcessor
ButterKnife源码梳理过程中如何调试AbstractProcessor
IP:localhost,端口:5005。一旦你完成并运行它,那它就会连接到daemon线程中了。如果端口被占用自己修改。
运行的话选中创建好的RemoteRemote Debugger然后点击Debug按钮就好
ButterKnife源码梳理过程中如何调试AbstractProcessor

3最后gradle命令来运行构建。

gradlew assembleDebug

或者直接切换到app然后直接运行就好
ButterKnife源码梳理过程中如何调试AbstractProcessor

注意:每次运行后因为已经自动生成了类,所以再次运行不会进入AbstractProcessor,所以需要clean一下,然后再运行app就可以再次调试了。
ButterKnife源码梳理过程中如何调试AbstractProcessor