【问题标题】:Can't use Android library after migration from JCenter to MavenCentral. Error: Could not find :unspecified:从 JCenter 迁移到 MavenCentral 后无法使用 Android 库。错误:找不到:未指定:
【发布时间】:2021-04-07 17:16:11
【问题描述】:

我刚刚将我的 Android 库从 JCenter 迁移到了 MavenCentral。该过程成功完成,我可以通过Sonatype Repo Search找到我的库。

但是,当我尝试在示例应用程序中使用该库时,我收到以下错误:

Execution failed for task ':sample:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':sample:debugRuntimeClasspath'.
   > Could not find :unspecified:.
     Required by:
         project :sample > com.techyourchance:threadposter:1.0.0

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

看起来 Gradle 找到了我的库(因为如果我更改为不存在的版本,比如 2.0.0,那么我会得到完全不同的错误),但是工件存在一些问题。

所有源代码(包括库和示例应用程序)都可以在here 找到。具体来说,这里是 lib 的 build.gradle 和处理向 Sonatype 发布的 that's the additional Gradle script

我已经花了两个小时在互联网上搜索上述每个错误消息,但目前无法解决此问题。

【问题讨论】:

  • 我遇到了这个问题。如果有的话,你可以尝试删除jitpack 吗?或者您可以按以下顺序尝试存储库:github.com/Drjacky/ImagePicker/issues/10#issuecomment-808258636
  • 我不明白为什么 Jitpack 会破坏 MavenCentral?
  • @EpicPandaForce 我也不行。我遇到了这个问题并做到了,它确实有效,但似乎接受的答案是正确的解决方案。我也会为我做同样的事情。

标签: android maven gradle


【解决方案1】:

在您的 publish-maven.gradle 中跳过名称为“未指定”的依赖项。

withXml {
    def dependenciesNode = asNode().appendNode('dependencies')

    project.configurations.implementation.allDependencies.each {
        if (it.name != 'unspecified') {
            def dependencyNode = dependenciesNode.appendNode('dependency')
            dependencyNode.appendNode('groupId', it.group)
            dependencyNode.appendNode('artifactId', it.name)
            dependencyNode.appendNode('version', it.version)
        }
    }
}

【讨论】:

  • 这确实是问题所在。但是,正如另一位开发人员所建议的那样,我最终只是删除了整个 withXml 块,它现在似乎可以正常工作了。不过,您的回答也是正确的,所以我会接受。感谢您的帮助!
  • 虽然这可行,但我建议检查依赖组作为安全防护以进行更广泛的检查it.group != null
  • @Artur Artikov @Vasiliy @Dr.jacky 非常感谢,我遇到了类似的问题,这看起来是解决方案的主要候选者。不过,我有一个相关的问题:您是如何在没有实际发布的情况下对其进行测试的?我知道您可以将 aar 文件包含为本地依赖项,但是这样做不会复制 Could not find :unspecified 错误。关于如何在不实际发布到 Maven Central 的情况下对其进行测试的任何想法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
  • 2021-08-19
  • 1970-01-01
  • 2019-05-13
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多