首页 > 解决方案 > 将android gradle插件更新到7.0后Android gradle自定义插件错误

问题描述

以下是我的自定义插件代码

import com.android.annotations.NonNull;
import com.android.build.gradle.LibraryExtension;

import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.artifacts.Configuration;


public class CustomPlugin implements Plugin<Project> {

@Override
public void apply(@NonNull Project project) {
    project.getPluginManager().withPlugin("com.android.library", plugin -> {
        //code here
    });
}

}

将 android gradle 插件从 4.2.1 升级到 7.0 以上自定义插件代码显示错误:包 com.android.annotations 不存在

如何修复此错误?

标签: androidgradleannotationsandroid-gradle-plugingradle-custom-plugin

解决方案


当我与 alphanso 在同一个项目中工作并从他那里接管了 AGP 升级时,我终于发现了以下内容:

代码位于.buildSrc我们项目的目录中,并使用 Gradle 插件java-libraryjava-gradle-plugin.

因此android.useAndroidX=true没有效果,因为这仅在您使用 Android 插件com.android.librarycom.android.application.

突然丢失类的根本原因(我们的子包中com.android.build也丢失了一些其他类)在其他地方:

在 AGP 7.0 中,大多数库依赖项com.android.tools.build:gradle从“编译时”更改为“运行时”,您可以在此处看到:

AGP 4.2.2: https ://mvnrepository.com/artifact/com.android.tools.build/gradle/4.2.2

AGP 7.0: https ://mvnrepository.com/artifact/com.android.tools.build/gradle/7.0.0

这意味着当切换到 AGP 7.x 时,您必须手动添加缺少的依赖项。

在我们的例子中添加

implementation "com.android.tools:common:30.0.3"

解决了这个问题。


推荐阅读