Android Gradle 插件 - 我应该使用什么来代替孵化抽象,例如 defaultConfig?

hba*_*hba 7 gradle android-gradle-plugin gradle-kotlin-dsl

我是 Gradle 新手,我正在尝试将我的 android groovy 构建脚本移植到 kts。

我有一个可以工作的版本,但是 Android studio 正在抱怨(到处)我的语法。

例如:

defaultConfig: 'defaultConfig(kotlin.jvm.functions.Function1<? super com.android.build.api.dsl.ApplicationDefaultConfig,kotlin.Unit>)' 被 @Incubating 标记为不稳定

“setApplicationId(java.lang.String)”在不稳定的“com.android.build.api.dsl.ApplicationBaseFlavor”中声明,并用@Incubating标记

这一直持续下去。当我查看文档时,我可以看到它正在孵化,但它没有说明用它替换什么等等。

android {
    compileSdk = 31
    defaultConfig {
        applicationId = "myappId"
        minSdk = 21
        targetSdk = 31
        versionCode = 1
        versionName = "1.0"
        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }
Run Code Online (Sandbox Code Playgroud)

我应该忽略这些警告吗?如果是这样,为什么要发出警告?


我刚刚在另一台机器上打开该项目,没有看到警告。该机器正在运行完全相同版本的 Android Studio:

  • 虚拟机
  • 科特林
  • 摇篮

当我单击 defaultConfig 之类的内容并导航到源代码时,我看到它来自完全相同的模块。它被标记为@Incubating。

我还检查了设置>编辑器>检查,它们都有相同的设置。

Iho*_*kov 1

此警告与 Android Studio 或编译器无关。它来自 Gradle 构建系统:链接

该警告的含义如下:

...该功能目前正在开发中,可能随时更改。

对于我喜欢的项目,我确实@Suppress("UnstableApiUsage")会拒绝它。但我强烈建议您不要为商业/生产项目这样做。如果您使用的是最新的稳定版本,更好的方法是等到 Gradle 开发人员稳定该功能。或者如果可能的话更新到最新的稳定版。

  • 然而,一切似乎都在永远酝酿,看不到“稳定”的替代方案。甚至 [Android 文档](https://developer.android.com/studio/write/java8-support#supported_features) 也提出了这些建议。 (8认同)