能否创建自定义注解抑制Kotlin公共API的Lint未使用警告?
解决Android Studio对外API未使用警告的几种方法
用官方自带的@Keep注解
Android官方提供了@Keep注解(属于AndroidX或support库),专门用来标记需要保留的对外API——不管当前项目有没有使用这些API,编译器和Lint都不会触发未使用警告。直接把它加到你的公共方法、属性或者类上即可:
import androidx.annotation.Keep; @Keep public class PublicApiClass { @Keep public String publicProperty; @Keep public void publicApiMethod() { // 对外实现逻辑 } }
自定义@Api注解实现
如果想要更贴合团队规范的专属注解(比如叫@Api),可以自己定义一个,再让Lint忽略它标记元素的未使用警告:
- 定义自定义注解
创建一个注解类,设置保留策略为CLASS,确保Lint能识别到:
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.CLASS) public @interface Api { }
- 配置Lint规则
在项目的lint.xml文件中(没有的话就新建一个,放在app模块根目录),添加规则忽略@Api标记元素的未使用警告:
<?xml version="1.0" encoding="UTF-8"?> <lint> <issue id="UnusedPublicMethod"> <ignore annotation="com.yourpackage.Api" /> </issue> <issue id="UnusedPublicField"> <ignore annotation="com.yourpackage.Api" /> </issue> </lint>
之后给你的对外API加上@Api注解就可以了:
@Api public class PublicApiClass { @Api public String publicProperty; @Api public void publicApiMethod() { // 对外实现逻辑 } }
单个元素直接抑制警告
如果只是个别API需要处理,也可以直接用@SuppressWarnings("unused")注解,针对性抑制单个方法或属性的未使用警告:
public class PublicApiClass { @SuppressWarnings("unused") public String publicProperty; @SuppressWarnings("unused") public void publicApiMethod() { // 对外实现逻辑 } }
内容的提问来源于stack exchange,提问作者progquester
相关产品推荐
相关产品推荐

