如何解决isCoreLibraryDesugaringEnabled在Gradle Kotlin DSL / KTS中不起作用
要在我们的android-library模块中启用desugaring,必须将其放在build.gradle
中:
android {
compileOptions {
coreLibraryDesugaringEnabled true
}
}
但是我们已经将所有脚本迁移到了gradle kotlin dsl,因此问题在build.gradle.kts
中以三种方式发生:
android {
compileOptions {
iscoreLibraryDesugaringEnabled = true
}
}
configure<BaseExtension> {
compileOptions {
iscoreLibraryDesugaringEnabled = true
}
}
android {
if (this is com.android.build.api.dsl.LibraryExtension<*,*,*>) {
buildFeatures.viewBinding = true
}
}
每次都抛出Unresolved reference: iscoreLibraryDesugaringEnabled
。
有人知道如何解决此问题吗?
解决方法
如果您使用的是Android Gradle插件版本> = 4.1,请使用:
isCoreLibraryDesugaringEnabled = true
对于之前的版本,请使用:
coreLibraryDesugaringEnabled = true
,
从理论上讲,当我切换到更新的android插件版本(4.1.0-rc02)时,它会起作用。 IDE说这是错误的语法,但在编译过程中可以使用。
if (this is com.android.build.api.dsl.LibraryExtension<*,*,*>) {
compileOptions.isCoreLibraryDesugaringEnabled = true
}
但是,这不是理想的解决方案
-----最终解决方案-----
解决方案类似于How to exclude (ignore) android build variants in gradle kts
由于顶层build.gradle.kts
的这一行缺少行而无法正常工作:
classpath("com.android.tools.build:gradle:4.0.1")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。