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

升级Android Gradle Plugin到7.0后自定义插件报包不存在错误如何解决

AGP 7.0 自定义插件com.android.annotations包不存在修复方案

报错原因

AGP 7.0 版本正式移除了内置的com.android.annotations相关依赖包,原有基于AGP 4.x版本开发的自定义插件如果引用了该包下的注解,升级后就会触发包不存在的编译错误。

修复方案

你可以根据需求选择以下任意一种方案:

方案一:替换为通用非空注解(推荐)

替换原有注解的导入语句,通用注解兼容性更好,不会跟随AGP版本变动出现依赖丢失问题:

  1. 删除代码中的import com.android.annotations.NonNull;导入行
  2. 替换为以下任意一种非空注解:
    • JetBrains官方注解:import org.jetbrains.annotations.NotNull;,需要在自定义插件的构建配置中添加依赖:
    dependencies {
        implementation 'org.jetbrains:annotations:24.1.0'
    }
    
    • JDK自带注解:import javax.annotation.Nonnull;,无需额外添加依赖

修改后的apply方法代码示例:

@Override
public void apply(@NotNull Project project) {
    project.getPluginManager().withPlugin("com.android.library", plugin -> {
        //原有逻辑无需改动
    });
}

方案二:补回AGP移除的注解依赖

如果不想修改原有代码的注解引用,直接在自定义插件的构建配置中手动添加被移除的注解依赖即可:

dependencies {
    implementation 'com.android.tools:annotations:30.4.2'
}

该依赖包包含了原有的com.android.annotations.NonNull类,添加后原有代码无需任何改动即可正常编译。

方案三:直接删除非空注解

如果你不需要编译期的非空检查逻辑,可以直接删掉apply方法参数前的@NonNull注解,不会影响插件的正常运行。

内容的提问来源于stack exchange,提问作者alphanso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:18:04