背景由来
在自定义ButterKnife时,通过APT方式生成Java代码,因为是编译时期生成,我们无法像Android项目一般运行起来之后通过debug方式来调试,一旦项目无法调试,对于开发者来说是一件很痛苦的事情,下面我们介绍如何 debug 自定义
AbstractProcessor
项目准备阶段
需要配置Gradle环境变量,后期需要通过gradle命令开启守护线程,以及项目构建
开始配置
- 在AS中点击 Edit Configurations ,如图所示:
- 创建Remote Debug,如图所示:
第一步: 点击左上角添加按钮,在弹窗中选中remote
第二步:给Remote调试随意取个名字
第三步:设置Host,Port ,一般默认就行,如果有多个请更改端口
第四步:复制刚刚配置的参数,-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
最后点击Ok创建就行
- 配置gradle.properties文件
1 | #将刚刚生成的 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 填入 |
- 打开命令窗口开启守护线程
1 | #开启守护线程 |
- 选择刚刚添加的Remote Debug,在项目中打好断点,开启debug模式,如图所示:
点击小虫子后显示:Connected to the target VM, address: ‘localhost:5005’, transport: ‘socket’表示开启成功,如果提示连接不上,请重复上一步骤
- 最后通过输入gradle命令进行构建
1 | #定位到相应的项目目录下面构建 |
这里执行了两个task:
task clean :delete rootProject.buildDir
task assembleDebug :系统封装好的debug构建 task
执行上述命令之后,表示已经成功进入调试了
到这里就结束了,感谢观看。