You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否创建自定义注解抑制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忽略它标记元素的未使用警告:

  1. 定义自定义注解
    创建一个注解类,设置保留策略为CLASS,确保Lint能识别到:
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.CLASS)
public @interface Api {
}
  1. 配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:59:54