Kry*_*ski 4 android gradle-kotlin-dsl gradle-kts
要在我们的 android-library 模块中启用脱糖,我们必须将其放入build.gradle:
android {
compileOptions {
coreLibraryDesugaringEnabled true
}
}
Run Code Online (Sandbox Code Playgroud)
但是我们所有的脚本都迁移到了 gradle kotlin dsl,所以问题出现build.gradle.kts在所有三个方面:
android {
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
}
Run Code Online (Sandbox Code Playgroud)
configure<BaseExtension> {
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
}
Run Code Online (Sandbox Code Playgroud)
android {
if (this is com.android.build.api.dsl.LibraryExtension<*, *, *, *, *, *, *, *, *, *, *>) {
buildFeatures.viewBinding = true
}
}
Run Code Online (Sandbox Code Playgroud)
每次它抛出Unresolved reference: isCoreLibraryDesugaringEnabled.
有人知道如何解决这个问题吗?
Sau*_*rat 17
如果您使用的是 Android Gradle 插件版本 >= 4.1,请使用:
isCoreLibraryDesugaringEnabled = true
Run Code Online (Sandbox Code Playgroud)
对于之前的版本,请使用:
coreLibraryDesugaringEnabled = true
Run Code Online (Sandbox Code Playgroud)
当我切换到较新的 android 插件版本(4.1.0-rc02)时,理论上它可以工作。IDE 说这是错误的语法,但它在编译期间可以工作。
if (this is com.android.build.api.dsl.LibraryExtension<*, *, *, *, *>) {
compileOptions.isCoreLibraryDesugaringEnabled = true
}
Run Code Online (Sandbox Code Playgroud)
然而,这不是一个理想的解决方案
----- 最终解决方案 -----
解决方案类似于如何在 gradle kts 中排除(忽略)android 构建变体
由于顶层此行中缺少行,因此无法正常工作build.gradle.kts:
classpath("com.android.tools.build:gradle:4.0.1")
| 归档时间: |
|
| 查看次数: |
1230 次 |
| 最近记录: |