Que*_*ery 84 android maven jcenter
\n\n主持人注意:这似乎是服务中断。Stack Overflow无法为此问题提供支持
\n
> Failed to list versions for com.google.http-client:google-http-client-android.\n > Unable to load Maven meta-data from https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml.\n > Could not HEAD \'https://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml\'.\n > Read timed out\nRun Code Online (Sandbox Code Playgroud)\n我试图构建一个 Android 应用程序,但出现了上述错误。当我连接到 \xe2\x80\x9chttps://jcenter.bintray.com/com/google/http-client/google-http-client-android/maven-metadata.xml\xe2\x80\x9d 时,nginx 403出现错误。JCenter挂了?我应该怎么办?
\nHBB*_*B20 58
还有一件事。关注此处事件
\n是的。JCenter 现在已关闭。但有一种方法可以解决这个问题。JCenter 不久前已停用,并以只读模式保持可用。到目前为止,还没有任何关于何时再次可用的更新。根据您的具体情况,您可以选择快速或不那么快速的选择。
\n此处报告了新事件。看一下这个。
\n正如 @Adrian 在评论中提到的,您可以在Gradle 的事件状态页面上检查当前事件的状态。状态显示“已解决”,但我仍然可以\xe2\x80\x99t 制作该项目。所以我想知道该状态页面是否只显示 JCenter 对 Gradle Plugin Portal 的影响,而不显示 JCenter 的总体状态。
\n现在该事件已通过更新 gradlePluginPortal 以充当 JCenter 镜像(几乎)得到解决,很有可能在之前添加以下存储库jcenter()应该可以解决该问题:
google()\nmavenCentral()\ngradlePluginPortal() \nRun Code Online (Sandbox Code Playgroud)\n切换 Gradle 的离线模式,如下所示。这适用于本地计算机,但它不适用于CI。
\n\n放弃已弃用的服务始终是个好主意。大多数活跃的库现在都托管在其他流行的存储库上,例如 Google 存储库、Maven Central或 Gradle 插件存储库。
\n要在您的项目中添加这些存储库,请在存储库块中添加以下内容(您可能已经拥有这些存储库)。顺序很重要。确保将它们放在jcenter()告诉 Gradle 在尝试从中提取之前查看其他存储库之前jcenter()放置它们。
提示:进行全局搜索jcenter()并确保包含jcenter()这些其他存储库的每个存储库块。
repositories {\n ...\n google()\n mavenCentral()\n gradlePluginPortal() \n jcenter()\n ...\n }\nRun Code Online (Sandbox Code Playgroud)\n执行 Gradle 同步和清理构建,看看是否有效。
\n别担心(暂时)。这很常见。在某些情况下,上述解决方案无法单独工作\xe2\x80\x99:
\n当从其他存储库移动时jcenter()(例如mavenCentral(),作者决定更新版本号。这仅仅意味着您需要更新该依赖项的版本才能从其他存储库获取它。查找在失败的构建日志中显示为不可用的库。查找其 GitHub 或开发文档以查看最新版本。Gradle 同步 + 干净的构建。
我们刚刚添加的存储库是受欢迎的存储库,但它们并不是唯一的存储库。当库的作者不得不从 JCenter 切换到其他地方时,他们没有选择其中之一。在这种情况下,请检查 GitHub 页面或开发人员文档。通常作者将所需的存储库放在这些页面上。如果您发现您的项目中不存在该存储库,请添加它。Gradle 同步 + 干净的构建。
\n\n好吧,现在是时候不用担心了。您很有可能正在使用某些已弃用或不再维护的库。找到该库的 GitHub 页面,查看作者是否在自述文件中声明它已弃用或不再维护。您甚至可以检查上次提交的时间。如果是不久前,则意味着它不再维护,并且作者不关心将库从jcenter()任何其他存储库移动。
jcenter。如果幸运的话,有人甚至可能创建了分叉并将该分叉托管在其他地方。例如,我spanny在其中一个项目中使用了它,而作者没有移动它。古斯塔沃·罗斯关心足够关心分叉并移动。但是,嘿,我不记得在我的代码库中放置了有问题的库?这意味着,它是传递依赖(直接依赖的依赖)。再次检查您的直接依赖项的最新版本,希望新版本已修复此问题。
\n如何检查直接依赖和传递依赖?
\n希望此时您已经可以正常构建了。如果没有,那么希望 JCenter 尽快回来并开始计划离开它。
\nSte*_*eve 29
最终,经过几个小时的头部刘海后,问题得到了解决。在 中,在->android/build.gradle的顶部添加以下内容。allprojectsrepositories
它将jcenter()在配置阶段从所有依赖项中删除并将其替换为mavenCentral().
它应该看起来像这样:
allprojects {
repositories {
all { ArtifactRepository repo ->
println repo.url.toString()
if (repo.url.toString().startsWith("https://jcenter.bintray.com/")) {
project.logger.warn "Repository ${repo.url} removed."
remove repo
mavenCentral()
}
}
gradlePluginPortal() // Add this if you get further errors
...other repositories
}
}
Run Code Online (Sandbox Code Playgroud)
小智 8
是的,你并不孤单。今天 JCenter 似乎很不景气。
我的解决方案是将所有更改jCenter为mavenCentral
from root/android/build.gradle。
另外,不要忘记图书馆node_module/*error library*/android/build.gradle。
小智 6
我也遇到了这个问题,我不太确定为什么 JCenter 返回 403,但是你可以通过在存储库设置中添加mavenCentral()before来解决这个问题jcenter(),如下所示:
repositories {
...
mavenCentral() // Add this line
jcenter()
...
}
Run Code Online (Sandbox Code Playgroud)
我认为 Maven Central 并不是 JCenter 的完整替代品。\n我使用的是阿里云的镜像。jcenter()用。。。来代替maven { url "https://maven.aliyun.com/repository/jcenter" }。
我不知道它\xe2\x80\x99是否可以从中国境外访问,或者阿里云是否审查了某些软件包,或者它是否是最新的。
\n更换指南:
\n在文件android/build.gradle中:
\nbuildscript {\n ...\n repositories {\n ...\n- jcenter()\n+ maven { url "https://maven.aliyun.com/repository/jcenter" }\n }\n}\nallprojects {\n+ buildscript {\n+ repositories {\n+ maven { url "https://maven.aliyun.com/repository/jcenter" }\n+ }\n+ }\n repositories {\n ...\n- jcenter()\n+ maven { url "https://maven.aliyun.com/repository/jcenter" }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
31130 次 |
| 最近记录: |