前言: 使用ASM在编译期修改字节码来完成各种功能(统计方法耗时、全埋点统计...),就需要开发Gradle插件。开发插件中遇到问题排查使用日志输出效率太低了,能断点调试的话就更好
前言:
- 使用ASM在编译期修改字节码来完成各种功能(统计方法耗时、全埋点统计...),就需要开发Gradle插件。开发插件中遇到问题排查使用日志输出效率太低了,能断点调试的话就更好了。其实已经有很多文章写了调试插件的方法,但是自己照着他们的步骤下来还是遇到一些问题,把这些问题记录下来方便大家少走弯路。
- Android Studio版本是3.5.2,Gradle版本是3.5.1
1.点击【Run】->【Edit Configurations...】:
2.然后点击左上角的【+】,选择【Remote】:
3.名字随便起,把命令行参数复制下来,【Use module classpath】选择要调试的插件,其他默认即可,然后点击【OK】:
这样服务端就搞好了,稍后我们需要配置客户端调试器让其连接过来,就可以调试了
4.在目标项目新建gradle任务并连接到服务端
在目标项目(即引入插件的那个项目),打开gradle目录,启动模块一般都是app,所以我们展开到【:app】->【Tasks】右击【build】选择create
5. 在打开的界面把第3步复制下来的内容粘贴到【VM options】,并且将suspend=n改为suspend=y然后点击【OK】:
6. 【:app】->【Tasks】->【Run Configgurations】会生成一个任务,最终在最终就是下边这个样子:
7. 现在可以开始调试了,在插件代码里面需要调试的地方打好断点,双击我们新建的gradle任务:
8.将工具栏的运行选项改成我们新建的远程调试那个选项,没有取名字的话默认就是【unnamed】,然后点击启动调试的图标:
启动成功会有如下输出:
9.目标项目的调试器很快就会连接到我们建立的服务端并自动跳转,遇到断点则会断下来:
问题:
- 断点只能进入Plugin的apply方法,不能进入Transform的transform方法,clean项目再执行上面步骤7、8
到此这篇关于Android Studio调试Gradle插件详情的文章就介绍到这了,更多相关Android Studio调试Gradle内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!