【问题标题】:How to resolve DependencyResolutionManagement warning in Kotlin DSL如何解决 Kotlin DSL 中的 DependencyResolutionManagement 警告
【发布时间】:2023-02-01 18:53:20
【问题描述】:

我使用 Android Studio 版本创建了一个新的 Android 项目 -电鳗.我试图将 gradle 脚本从 groovy 迁移到 kotlin DSL,遇到警告。

在之前版本的 Android Studio 上开发的最后一个项目中 -花栗鼠,脚本很干净。上一个项目和新项目之间的脚本是相等的。

我想以正确的方式删除警告消息而不是抑制它们。我知道注释(@Incubating)的意思。

这是settings.gradle.kts
注释是我遇到的警告。

pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    // 'getRepositoriesMode()' is declared in unstable interface 'org.gradle.api.initialization.resolve.DependencyResolutionManagement' marked with @Incubating 
    // 'org.gradle.api.initialization.resolve.RepositoriesMode' is marked unstable with @Incubating 
    // 'FAIL_ON_PROJECT_REPOS' is declared in unstable enum 'org.gradle.api.initialization.resolve.RepositoriesMode' marked with @Incubating 
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)

    // 'repositories(org.gradle.api.Action<? super org.gradle.api.artifacts.dsl.RepositoryHandler>)' is declared in unstable interface 'org.gradle.api.initialization.resolve.DependencyResolutionManagement' marked with @Incubating 
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "MyNewProject"
include(":app")

我的 IDE、gradle、agp 版本:

  • 集成开发环境:电鳗 (2022.1.1, Build #AI-221.6008.13.2211.9477386)

Android Studio 电鳗 | 2022.1.1
Build #AI-221.6008.13.2211.9477386,建于 2023 年 1 月 11 日
运行时版本:11.0.16+8-b2043.64 amd64
VM:JetBrains s.r.o. 的 OpenJDK 64 位服务器 VM
视窗 10 10.0
GC:G1年轻代,G1老年代

  • 摇篮:7.5
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
  • 协议:7.4.0

(在 build.gradle 中,仍然与 groovy 在一起)

plugins {
    id 'com.android.application' version '7.4.0' apply false
    id 'com.android.library' version '7.4.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.0' apply false
}

【问题讨论】:

  • 我继续将其他构建脚本迁移到 kotlin DSL,我遇到了很多类,方法突出显示警告 @Incubating。 (例如 isMinifyEnabledcompose 等)

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


【解决方案1】:

我仔细检查了检查设置两个 IDE 版本,不稳定的 API 使用选项都已启用。选项包括正确的注释 - org.gradle.api.incubating

我认为电鳗版本解决了一个错误(实际上我不确定),但这并没有明确解决,直到他们发布稳定的 API 或其他方式......

现在我在每个 gradle 脚本的顶部添加了 @file:Suppress("UnstableApiUsage")

【讨论】:

    【解决方案2】:

    添加 @Suppress("UnstableApiUsage") 以暂时修复感兴趣的代码中的问题,例如

    @Suppress("UnstableApiUsage")
        packagingOptions {
            resources {
                excludes += "/META-INF/{AL2.0,LGPL2.1}"
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2022-07-10
      • 2013-04-29
      • 1970-01-01
      • 2012-06-14
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      相关资源
      最近更新 更多