天师

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。


  • 首页

  • 分类

  • 归档

  • 标签

  • 关于

如何调试AbstractProcessor

发表于 2019-08-01 分类于 工具
本文字数: 1.1k 阅读时长 ≈ 1 分钟
背景由来

在自定义ButterKnife时,通过APT方式生成Java代码,因为是编译时期生成,我们无法像Android项目一般运行起来之后通过debug方式来调试,一旦项目无法调试,对于开发者来说是一件很痛苦的事情,下面我们介绍如何 debug 自定义

AbstractProcessor

项目准备阶段

需要配置Gradle环境变量,后期需要通过gradle命令开启守护线程,以及项目构建

开始配置
  • 在AS中点击 Edit Configurations ,如图所示:

Edit Configurations

  • 创建Remote Debug,如图所示:

Remote Debug

第一步: 点击左上角添加按钮,在弹窗中选中remote

第二步:给Remote调试随意取个名字

第三步:设置Host,Port ,一般默认就行,如果有多个请更改端口

第四步:复制刚刚配置的参数,-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

最后点击Ok创建就行

  • 配置gradle.properties文件
1
2
3
#将刚刚生成的 -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 填入
org.gradle.daemon=true
org.gradle.jvmargs=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
  • 打开命令窗口开启守护线程
1
2
3
4
5
#开启守护线程
$ gradle --daemon
#提示build successful 表示开启成功了
$ BUILD SUCCESSFUL in 11s
$ 1 actionable task: 1 executed
  • 选择刚刚添加的Remote Debug,在项目中打好断点,开启debug模式,如图所示:

开启Debug模式

点击小虫子后显示:Connected to the target VM, address: ‘localhost:5005’, transport: ‘socket’表示开启成功,如果提示连接不上,请重复上一步骤

  • 最后通过输入gradle命令进行构建
1
2
#定位到相应的项目目录下面构建
$gradle clean assembleDebug

这里执行了两个task:

task clean :delete rootProject.buildDir

task assembleDebug :系统封装好的debug构建 task

执行上述命令之后,表示已经成功进入调试了

成功如图所示

到这里就结束了,感谢观看。

# 工具
注解笔记
ButterKnife源码分析
  • 文章目录
  • 站点概览
欢亮

欢亮

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。
9 日志
6 分类
10 标签
GitHub E-Mail
Links
  • 二松同学
  1. 1. 背景由来
  2. 2. 项目准备阶段
  3. 3. 开始配置
© 2019 欢亮 | 121k | 1:50
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Muse v7.3.0