【问题标题】:buildFeatures is unstable because its signature references unstable ... marked with @IncubatingbuildFeatures 是不稳定的,因为它的签名引用了不稳定的 ... 标有 @Incubating
【发布时间】:2020-08-06 11:46:48
【问题描述】:

更新 Android Studio 项目并迁移到 Kotlin dsl。我看到上面的警告包装了 buildFeatures 块,我在其中启用了 dataBinding 和更新的视图绑定功能,我的 AS 和 gradle、kotlin 插件版本如下:

Android Studio V4.0

// defined in buildSrc\build.gradle.kts

val kotlinVersion     = "1.3.71"
val gradleVersion     = "4.0.0"

一切正常,除了我的(应用程序)build.gradle.kts 中的这个块在所有 3 行上的警告:

 buildFeatures{
     dataBinding = true
     viewBinding = true
 }

悬停在每一行上时出现的警告信息如下:

'buildFeatures(kotlin.jvm.functions.Function1<? super com.android.build.api.dsl.ApplicationBuildFeatures,kotlin.Unit>)'
is unstable because its signature references unstable 'com.android.build.api.dsl.ApplicationBuildFeatures' 
marked with @Incubating 
'getDataBinding()' is declared in unstable 'com.android.build.api.dsl.BuildFeatures' marked with @Incubating 
'getViewBinding()' is declared in unstable 'com.android.build.api.dsl.BuildFeatures' marked with @Incubating 

关于为什么将它们标记为警告的任何线索,相同的块在转换为 .kts 之前位于原始 build.gradle 文件中

【问题讨论】:

标签: android android-studio kotlin build.gradle gradle-kotlin-dsl


【解决方案1】:

别担心,这只是一个友好的警告,您正在使用@Incubating 类。让我们看一下定义:

表示某个功能正在孵化。这意味着该功能目前正在开发中,并且可能随时更改。

所以不用担心,使用它,并最终在将来更新它。可能会在未来的一些 Android Studio 和插件版本中被标记为稳定版。

----- 编辑-----

如果您想删除此警告,请将@Suppress("UnstableApiUsage") 放在您的行上方

【讨论】:

  • 它并没有破坏构建或任何东西,事情是在我为构建文件切换到 KotlinDSL 之前,我的 build.gradle 中有相同的代码块并且没有警告。烦人的部分是当您添加新的依赖项或更新版本代码等时。每次提交都会收到相同的警告
  • 如果你想避免警告,你可以使用viewBinding.isEnabled = true而不使用buildFeature,但IDE会喊出isEnable已被弃用。对我来说,kotlin dsl 比 groovy 更好、更令人愉悦,并且功能更丰富——比如 @Incubating,所以有时是的,它可能很烦人,但一般来说更安全、更容易使用
  • 我用如何禁用此警告的解决方案更新了我的回复
  • @JimmyFlash 您需要更多解释或更详细的答案吗?
  • 不@Krystian Kaniowski,谢谢,但就禁用不是我想做的警告而言,这不是生产代码,我宁愿更新到kotlin 1.4并检查是否/何时变为稳定
猜你喜欢
  • 2023-03-25
  • 2011-01-27
  • 2019-08-02
  • 1970-01-01
  • 2020-02-09
  • 2021-02-10
  • 2017-05-11
  • 2018-11-26
  • 2016-10-18
相关资源
最近更新 更多