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并运行它。
建立过程如图
IP:localhost,端口:5005。一旦你完成并运行它,那它就会连接到daemon线程中了。如果端口被占用自己修改。
运行的话选中创建好的RemoteRemote Debugger然后点击Debug按钮就好
3最后gradle命令来运行构建。
gradlew assembleDebug
或者直接切换到app然后直接运行就好
注意:每次运行后因为已经自动生成了类,所以再次运行不会进入AbstractProcessor,所以需要clean一下,然后再运行app就可以再次调试了。