开发groovy plugin、编译时注解时调试技巧

news/2024/5/20 3:05:54 标签: gradle, plugin, Android, groovy, compiler

groovy_plugin_0">开发groovy plugin、编译时注解时调试技巧

我们在开发Android plugin、编译注解、groovy脚本的时候,都可以参照该文章的方案调试代码。

一、添加远程调试配置

1、打开配置窗口

  1. android studio -> run -> edit configurations…
    在这里插入图片描述

  2. 找到平时运行app的地方 -> 点开下拉项 -> edit configurations…
    在这里插入图片描述

2、建立一个Remote debug configuration

二、创建一个debug时的编译task

打开android studio右边的gradle窗口,找到主工程app -> tasks -> other -> compileDebugJavaWithJavac 右键点击create…

把刚刚复制的那串配置黏贴到WM options中,注意:这里要把suspend改为y意思是等待调试接入,点击OK。

三、启动调试

在这里插入图片描述
找到平时运行app的地方,点开下拉项,这里可以见到至少3个可启动项,分别是app启动,刚刚新建的远程调试任务,和刚刚配置的compileDebugJavaWithJavac任务

找到刚刚配置的compileDebugJavaWithJavac任务,选中,然后点击运行,这个时候gradle会处于等待debug任务接入状态(就是一直打转):
在这里插入图片描述
这个时候可以开始启动远程调试任务了,annotationDebug点击debug,可以见到,控制台上输出了端口连接成功的字眼,再过几秒(gradle开始执行编译任务),就会进入到编译时注解的断点中,然后可以开始愉快的调试代码了。
在这里插入图片描述

特别提醒:如果没有进入调试,但又出现了远程调试端口已连接,那么你需要删除app工程的build/generated/source/apt/debug/*或者build/generated/ap_generated_sources/debug/out/*中,编译出来的文件

先启动java的编译,然后再启动remote调试


http://www.niftyadmin.cn/n/1268709.html

相关文章

Leetcode 9:回文数(超详细的解法!!!)

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个…

Leetcode 12:整数转罗马数字(超详细的解法!!!)

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000例…

元注解简介

元注解简介 简单介绍一下元注解,本篇文章用到的示例代码:AndroidAnnotationDemo Target Target元注解用来表明我们注解可以出现的地方,参数是一个ElementType类型的数组,所以Target可以设置注解同时出现在多个地方。比如既可以…

Leetcode 13:罗马数字转整数(超详细的解法!!!)

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000例如&#xff…

Leetcode 14:最长公共前缀(超详细的解法!!!)

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl"示例 2: 输入: ["dog","racecar","…

自定义运行时注解

自定义运行时注解 声明注解 通过Retention(RetentionPolicy.RUNTIME)元注解确定我们注解是在运行的时候使用。通过Target确定我们注解是作用在什么上面的(变量、函数、类等)。确定我们注解需要的参数。 解析注解 找到类对应的所有属性或者方法(至于是找类的属性还是方法就要…

Leetcode 22:括号生成(超详细的解法!!!)

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。 例如,给出 n 3,生成结果为: ["((()))","(()())","(())()","()(())","()(…

A standalone plugin project

A standalone plugin project 我们将插件移至独立项目,以便我们可以发布它并与他人共享。 这个项目只是一个Groovy项目,它产生一个包含插件类的JAR。 这是该项目的简单构建脚本。 它应用了Groovy插件,并将Gradle API添加为编译时依赖项。 自…