Moderator Note:这似乎是服务中断.堆栈溢出cannot provide support for this issue

   > Failed to list versions for com.google.http-client:google-http-client-android.
         > Unable to load Maven meta-data from https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml.
            > Could not HEAD 'https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml'.
               > Read timed out

我试图构建一个Android应用程序,但我收到了上面的错误.当我连接到"https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml",时,出现ngix403错误.JCenter关闭了吗?我该怎么办?

推荐答案

TLDR;

是.现在jcenter美元下跌了.jcenter是不久前日落的时候,在只读模式下仍然可用.到目前为止,还没有关于它何时再次可用的更新.根据您的情况,您可以 Select 快速或not so-quick个选项.


我在哪里可以查看状态?

更新: 这里报告了新的事件.Check this out.

正如@禤浩焯在 comments 中提到的,你可以在Gradle's incident status page上查看当前事件的状态.更新:状态显示为"已解决",但我仍然无法完成该项目.所以我想知道是不是状态页只显示了jcenter对Gradle插件门户的影响,而不是一般的jcenter的状态.

到目前为止,我找不到任何报告收件箱状态的地方.如果找到,请在下面发表 comments .


我现在能做什么?

临时解决方案:

切换Gradle的离线模式,如下所示.这将适用于本地计算机,但不适用于CI.

Toggle offline mode option

强大的解决方案:

远离过时的服务总是一个好主意.Most个活跃的图书馆现在托管在其他流行的资源库上,比如Google repo、Maven Central或Gradle plugin repo.

要在您的项目中添加这些存储库,请在Repositories块中添加以下内容(您可能已经有这些存储库).秩序很重要.一定要把它们放在jcenter()之前,这会告诉Gradle在try 从jcenter()中拉出之前先看看其他的repos.

提示:对jcenter()进行全局搜索,并确保包含jcenter()的每个存储库块都有这些其他repos.

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

做梯度同步和清理构建,看看是否有效.


不管用吗?

(目前)别担心.这很常见.在某些情况下,上述解决方案不能单独使用:

  1. 当从jcenter()迁移到其他repo(如mavenCentral())时,作者决定更新版本号.这仅仅意味着您需要更新该依赖项的版本,以从其他repo中获取它.查找在失败的生成日志(log)中显示为不可用的库.找到GitHub或开发文档来判断最新版本.Gradle Sync+Clean Build.

  2. 我们刚才添加的存储库很受欢迎,但不是唯一的.当图书馆的作者不得不从jcenter个换到其他地方时,他们没有 Select 其中一个.在这种情况下,请查看GitHub页面或开发人员文档.通常,作者会在这些页面上放置所需的存储库.如果您发现项目中不存在该存储库,请添加它.Gradle Sync+Clean Build.

    • Beware:一些作者 Select 像jitpack.io这样的存储库选项,很大程度上是因为它比其他选项更快、更容易.但你应该意识到这一点的担忧.来自Gradle summarizes the concernsMelix,带有jitpack.io.由于潜在的安全问题,我建议在添加之前咨询团队和安全专家.
  3. 好了,现在是时候少操心了.您很可能正在使用某个已弃用或不再维护的库.找到库的GitHub页面,并查看作者是否声明它已弃用或不再在自述文件中维护.您甚至可以判断它上次提交的时间.如果是在一段时间之前,这意味着它不再维护,作者不再关心将库从jcenter()移到任何其他repo.

    • 转到回购的GitHub问题.一定有人发布了关于从jcenter迁移的计划的问题.如果你运气好,有人甚至可能已经创建了fork ,并在其他地方托管了那个fork .例如,我在其中一个项目中使用了spanny,但作者没有移动它.GustavoRoss cared美元足够fork 和移动.
    • 没人用fork 挪动吗?那么你有两个 Select .
      1. 寻找为您执行相同操作的备用活动库.当然,这很耗时,但还是远离过时的资源是个好主意.
      2. 如果您没有时间集成新的库,或者其他库不存在,那么做个英雄,做GitHub项目的Forking ,然后搬家.
  4. 但是,嘿,我不记得在我的代码库中有问题的库吗?这意味着,它是传递性依赖(直接依赖的依赖).再次判断,您的直接依赖的最新版本,希望新版本已经解决了这个问题.

How to check direct and transitive dependency?

  • 您失败的构建日志(log)提供了答案.

Build log annotated screenshot

希望在这一点上,您已经得到了构建工作.如果不是,那么希望jcenter个人很快回来,并开始计划摆脱它.

Android相关问答推荐

如何允许我的应用程序在Android 10上运行,同时目标是API 33

编写Inbox需要具有匹配兼容性的Kotlin版本

Jetpack Compose make父级图像填充高度

无法将项目添加到文件室数据库

Android Compose Pages 3-一次加载所有页面,无需在LazyColumn中滚动,无需网络调用和内部滚动

登录方法显示为空列表,即使它显示的是Firebase身份验证控制台

尽管我们不再使用GCM SDK,但应用程序已被标记为使用GCM SDK

如何使可拖动内容停留在可组合框的边界内

在Jetpack Compose中,我可以配置动画以恒定的速度而不是恒定的时间运行吗?

安卓Azure通讯聊天UI库导入?

需要 java 17 而不是 java 11:Android CI-CD GitHub Actions

如何在 compose 中使用可变对象?

为什么 Android Studio 中的 theme.xml 目录没有任何原色

Kotlin File(path).walkTopDown() 找不到文件

Android apk 不工作

如何在 Jetpack Compose 中向图像视图添加对角色带?

Composable 不会在单击按钮时重新组合

MediumTopAppBar Material3 只更改大标题

我的 react native 项目的发布签名 apk 没有在设备中打开,而且它创建的尺寸非常小

如何满足设备内框架的无效 Wear OS 屏幕截图Wear OS 表盘策略违规?