“JCenter 生命周期结束”android lint 警告,替代品是什么?

新手上路,请多包涵

Android Studio Arctic Fox Canary 8开始警告 JCenter is at end of life

在此处输入图像描述

但我不能只删除 jcenter() 声明,因为它包含很多 android 工件,它会导致 Could not resolve all artifacts 错误。解决此警告的正确方法是什么?

原文由 Valeriy Katkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 933
2 个回答

有一个描述问题的文档部分: JCenter deprecation and end of service 。您可以通过展开检查说明 ( Ctrl+F1 ) 找到链接。文件指出:

JFrog 是维护许多 Android 项目使用的 JCenter 工件存储库的公司,最近宣布弃用 JCenter 并即将停用。根据 公告,JCenter 将在 2022 年 2 月 1 日之前允许下载现有工件。

在 JCenter 上发布工件的开发人员应该开始将他们的包迁移到新主机,例如 Maven Central

在不久的将来,我们将在此页面上提供有关从 JCenter 迁移 Android 项目的更多信息。

扩展检查说明(以及上述文档)建议将 jcenter() 替换为 mavenCentral() 。实际上 JCenterMaven Central 的超集,但在您的项目使用的所有 JCenter 工件都将移至 Maven Central 之前,这样的替换不会解决问题。

我认为最佳解决方案是等到您使用的库从 jcenter() ,然后尝试将其替换为 mavenCentral() 。如果仍然缺少某些工件,请查看文档,它们可能已移至另一个存储库,您也应将其添加到 repositories 列表中。

 repositories {
    google()

//  jcenter()       // <- removed
    mavenCentral()  // <- added
}

如果你是图书馆作者,你应该迁移到另一个仓库,可能是 Maven Central 。请注意,根据 JCenter 弃用公告,仅允许在 2021 年 3 月 31 日之前提交新的内容。

一些相关资源:

原文由 Valeriy Katkov 发布,翻译遵循 CC BY-SA 4.0 许可协议

我认为要坚持不间断的迁移,而不是删除 jcenter() ,您可以保留两者并且只更改脚本本身的顺序。这样,当开发人员正在迁移他们的工件时, jcenter() 将始终是 mavenCentral() 的回退。

 repositories {
    google()
    mavenCentral()
    jcenter()
}

原文由 Ivan Bila 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题