【问题标题】:Gradle 4.2.+ Could not resolve navigation-ui-ktx:2.3.5Gradle 4.2.+ 无法解析 navigation-ui-ktx:2.3.5
【发布时间】:2021-08-11 11:37:30
【问题描述】:

在将 Android Studio 升级到 Fox 版本后,Gradle 从4.1.37.0.0 甚至4.2.+,以及distributionUrlgradle-7.0.1-bin.zip,我无法再构建我的应用程序了。

这是错误日志:

* What went wrong:
Execution failed for task ':onboarding:dataBindingMergeDependencyArtifactsDebugMobDebug'.
> Could not resolve all files for configuration ':onboarding:debugMobDebugCompileClasspath'.
   > Could not resolve android.arch.navigation:navigation-ui-ktx:2.3.5.
     Required by:
         project :onboarding
      > Skipped due to earlier error

Gradle 似乎无法下载 NavigationKTX 2.3.5 版。 解决方案是降级但 如何在不降级到 Gradle 版本 4.1.+ 的情况下解决问题

我想在我的应用程序中使用 jetpack compose,所以我需要将 gradle 更新到 4.2.+。

【问题讨论】:

  • 我首先查看docs.gradle.org/current/userguide/upgrading_version_6.html 这似乎是一个简单的依赖关系解析问题。也许您应该在定义依赖项的位置显示您的 build.gradle。
  • @CalvinTaylor 不,不是,因为它使用 Gradle 版本 4.2.2,这正是因为升级
  • 我不是来这里争​​论的。你在升级之前运行过 gradle help --warning-mode=all 吗?
  • > 任务:onboarding:dataBindingMergeDependencyArtifactsDebugMobDebug FAILED FAILURE:构建失败并出现异常。 * 出了什么问题:任务 ':onboarding:dataBindingMergeDependencyArtifactsDebugMobDebug' 执行失败。 > 无法解析配置 ':onboarding:debugMobDebugCompileClasspath' 的所有文件。 > 找不到 android.arch.navigation:navigation-ui-ktx:2.3.5。要求:项目:onboarding 原因:org.gradle.internal.resolve.ModuleVersionNotFoundException:找不到 android.arch.navigation:navigation-ui-ktx:2.3.5。
  • 暂时将你的 gradle 切换回 4.2.2,然后运行 ​​gradle help --warning-mode=all

标签: android android-studio gradle android-jetpack android-jetpack-compose


【解决方案1】:

Arctic Fox 的当前 Gradle 版本是例如。 gradle-7.1.1-all.zip(或bin)。

AGP 和 SafeArgs:

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        // classpath "com.android.tools.build:gradle:4.2.2"
        // classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.5"
        classpath "com.android.tools.build:gradle:7.0.0"
        classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-alpha02"
    }
}


...
apply plugin: "androidx.navigation.safeargs.kotlin"

整个 android.arch 命名空间已被取代:

android.arch.navigation:navigation-ui-ktx:2.3.5

改用当前的androidx 命名空间,其中2.3.5 是最新的稳定版本:

androidx.navigation:navigation-ui-ktx:2.3.5 / 2.4.0-alpha06

请注意不要混淆这些库名称空间(可能会有进一步的冲突) - 或者可能需要启用 Jetifier,这取决于进一步过时的依赖项(因为名称空间 com.android.support 也已被 @ 取代987654331@)。除非 a) 更新依赖项和 b) 修复所有导入...此项目不会构建。

【讨论】:

  • 请注意,Navigation 2.4 中针对navigation-ui-ktxnavigation-fragment-ktx 用户进行了大量修复和改进。
  • @ianhanniballake 这也适用于 Navigation Safe-Args 插件,例如。从 AGP 4.2 升级到 7.0 时。昨天才看到你的回答。
猜你喜欢
  • 1970-01-01
  • 2018-07-03
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
相关资源
最近更新 更多