【发布时间】:2023-02-05 09:17:35
【问题描述】:
我想编写一个自定义 gradle 插件来操作 com.android.build.gradle.AppExtension 或 com.android.build.gradle.LibraryExtension。插件的基本形式是:
class AndroidLibrary : Plugin<Project> {
override fun apply(project: Project) {
var lib: LibraryExtension = project.extensions.getByName("android") as LibraryExtension
lib.minSdkVersion = "26"
}
}
问题是无法解析类 LibraryExtension。该类包含在“com.android.tools.build:gradle:7.1.2”中。请注意,在 gradle.build.kts 脚本文件中访问这些类中的任何一个都没有问题。我只是无法从上面看到的自定义插件中访问这些类中的任何一个。我尝试在构建脚本中添加对 com.android.tools.build.gradle 7.1.2 的依赖,但这不起作用。我还尝试将其添加为 buildscript 依赖项,但这也无济于事。我也得到了 com.android.tools.build:gradle jar 文件并将其添加为依赖项,但这也不起作用。
在我看来,期望自定义插件能够操纵 android 构建设置是合理的,但我只是找不到从自定义插件项目中解析 LibraryExtension 或 AppExtension 的方法。
如果有人知道我需要做什么来解决这两个类,那将不胜感激。我目前的印象是,这是 android 的 gradle 插件的架构限制,我真的无法使用自定义插件和 dsl 中的 LibraryExtension 或 AppExtension 访问“android”构建部分。如果是这样的话,那也将很有用。
【问题讨论】:
-
libraryExtension 的相同代码对我有用