HarmonyOS 鸿蒙Next中Version Catalog方式管理依赖失败

HarmonyOS 鸿蒙Next中Version Catalog方式管理依赖失败 agcp = { id = “com.huawei.agconnect.agcp”, version = “1.9.3.302” }

plugins {
alias(libs.plugins.agcp) apply false
}

plugins { alias(libs.plugins.agcp) }

报错:

An exception occurred applying plugin request [id: ‘com.huawei.agconnect.agcp’, version: ‘1.9.3.302’]

Failed to apply plugin ‘com.huawei.agconnect.agcp’. Catalog named libs doesn’t exist


更多关于HarmonyOS 鸿蒙Next中Version Catalog方式管理依赖失败的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

遇到同样的问题,请求解决了吗

更多关于HarmonyOS 鸿蒙Next中Version Catalog方式管理依赖失败的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,Version Catalog依赖管理失败通常由以下原因导致:

  1. catalog文件路径或格式错误:确保libs.versions.toml文件位于项目根目录的gradle文件夹内,且语法正确。

  2. 版本引用错误:在模块build.gradle中,需使用libs前缀正确引用别名,例如implementation libs.xxx

  3. Gradle版本不兼容:确认项目使用的Gradle插件版本支持Version Catalog功能。

  4. 同步问题:尝试执行File > Sync Project with Gradle Files或命令行./gradlew --refresh-dependencies刷新依赖。

检查上述配置后,重新构建项目即可。

这个错误是因为你在 plugins 块中使用了 alias(libs.plugins.agcp),但Gradle无法找到名为 libs 的Version Catalog。

根据你提供的代码片段,问题出在结构上。你已经在 libs.versions.toml 文件中定义了依赖(agcp = { id = "com.huawei.agconnect.agcp", version = "1.9.3.302" }),但这只是定义了依赖库,并没有将其定义为插件

Version Catalog 管理插件和依赖库的声明方式是不同的。你需要做以下修改:

  1. libs.versions.toml 文件中,正确声明插件: 你需要一个 [plugins] 部分来声明插件,而不是在 [libraries] 部分。修改你的 libs.versions.toml 文件,添加插件声明:

    [versions]
    agcp = "1.9.3.302" # 建议将版本号单独管理
    
    [plugins]
    agcp = { id = "com.huawei.agconnect.agcp", version.ref = "agcp" } # 使用 version.ref 引用上面的版本
    
    # 或者,如果你不想单独管理版本,也可以直接写:
    # agcp = { id = "com.huawei.agconnect.agcp", version = "1.9.3.302" }
    
  2. 确保 settings.gradlesettings.gradle.kts 文件正确配置了Version Catalog: 这是创建名为 libs 的Catalog的关键步骤。检查你的 settings.gradle.kts 文件,确保有以下配置:

    dependencyResolutionManagement {
        versionCatalogs {
            create("libs") { // 这里创建了名为 "libs" 的Catalog
                from(files("gradle/libs.versions.toml")) // 指定你的toml文件路径
            }
        }
    }
    
  3. 在模块级 build.gradle.kts 中应用插件: 保持你模块级 build.gradle.kts 文件中的写法不变,但前提是前两步已正确配置:

    plugins {
        alias(libs.plugins.agcp) // 现在Gradle可以正确找到 libs.plugins.agcp 了
    }
    

总结问题根源: 错误 Catalog named libs doesn't exist 直接表明Gradle在上下文中找不到 libs 这个Catalog对象。这通常由两个原因导致:

  • 原因一(主要):settings.gradle.kts 中没有正确创建和配置名为 libs 的版本目录。
  • 原因二(次要):libs.versions.toml 文件中,插件没有被声明在 [plugins] 块下,导致 libs.plugins 命名空间下找不到对应的插件别名。

请按照上述步骤检查并修正你的配置顺序。核心是确保 settings中创建Catalogtoml中正确分隔插件与库 这两点。

回到顶部