Jul*_*sam 8 android gradle kotlin gradle-kotlin-dsl
我在 gradle 中使用目录版本时遇到问题,我正在尝试将其应用到我的项目中。我从这里举了一个例子https://github.com/android/nowinandroid但是当我收到如下错误时:
Extension of type 'LibraryExtension' does not exist. Currently registered extension types: [ExtraPropertiesExtension, LibrariesForLibs, VersionCatalogsExtension, BasePluginExtension, DefaultArtifactPublicationSet, SourceSetContainer, ReportingExtension, JavaPluginExtension, JavaToolchainService, NamedDomainObjectContainer<BaseVariantOutput>, BaseAppModuleExtension, ApplicationAndroidComponentsExtension, KotlinAndroidProjectExtension, KotlinTestsRegistry]
at org.gradle.internal.extensibility.ExtensionsStorage.getHolderByType(ExtensionsStorage.java:88)
at org.gradle.internal.extensibility.ExtensionsStorage.configureExtension(ExtensionsStorage.java:70)
at org.gradle.internal.extensibility.DefaultConvention.configure(DefaultConvention.java:189)
at AndroidLibraryConventionPlugin.apply(AndroidLibraryConventionPlugin.kt:30)
at AndroidLibraryConventionPlugin.apply(AndroidLibraryConventionPlugin.kt:10)
Run Code Online (Sandbox Code Playgroud)
我试图实现的代码是这样的:
internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension<*, *, *, *>,
) {
commonExtension.apply {
compileSdk = 32
defaultConfig {
minSdk = 21
}
compileOptions {
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
}
}
Run Code Online (Sandbox Code Playgroud)
之后它被称为这里
class AndroidLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("com.android.application")
apply("org.jetbrains.kotlin.android")
}
extensions.configure<LibraryExtension> {
configureKotlinAndroid(this)
defaultConfig.targetSdk = 32
}
val libs = extensions.getByType<VersionCatalogsExtension>().named("libs")
dependencies {
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您需要将 gradle 库添加到 buildSrc gradle 文件依赖项中:
compileOnly("com.android.tools.build:gradle:7.4.0")
Run Code Online (Sandbox Code Playgroud)
然后它将导入 LibraryExtension 类
归档时间: |
|
查看次数: |
1913 次 |
最近记录: |