這個問題在這里已經有了答案: 在 Android Gradle 存盤庫中替換 jcenter() 1 個答案 JCenter 棄用;對 Gradle 和 Android 的影響 8 個答案 7 小時前關閉。 這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。
版主注意:這似乎是服務中斷。Stack Overflow無法為此問題提供支持
> 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”時,出現 nginx 403 錯誤。JCenter 宕機了嗎?我應該怎么辦?
uj5u.com熱心網友回復:
這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。tldr;
是的。jcenter現在下降了。jcenter不久前是日落的,并且在只讀模式下仍然可用。到目前為止,還沒有關于何時再次可用的更新。根據您的情況,您可以選擇快速或不那么快速的選項。
我在哪里可以查看狀態?
更新:這里報告了新事件。看看這個。
正如@Adrian 在評論中提到的,您可以在Gradle 的事件狀態頁面上查看當前事件的狀態。更新:狀態顯示“已解決”,但我仍然無法制作該專案。所以我想知道該狀態頁面是否僅顯示jcenter對 Gradle 插件門戶的影響,而不是jcenter一般狀態。
到目前為止,我再也找不到任何報告 bintray 狀態的地方了。如果你找到了請在下方評論。
我現在能做什么?
臨時解決方案:
如下圖所示切換 gradle 的離線模式。這適用于本地機器,但不適用于 CI。
![JCenter 是否永久關閉(10 月 31 日)?[復制]](https://i.stack.imgur.com/8Du2A.png)
穩健的解決方案:
放棄已棄用的服務總是一個好主意。大多數活動庫現在托管在其他流行的存盤庫上,例如 google repo、Maven Central 或 gradle plugin repo。
要在您的專案中添加這些存盤庫,請在存盤庫塊中添加以下內容(您可能已經擁有這些)。訂單很重要。確保在jcenter()這告訴 gradle 在嘗試從jcenter().
提示:進行全域搜索jcenter()并確保包含的每個存盤庫塊都jcenter()具有這些其他存盤庫。
repositories {
...
google()
mavenCentral()
gradlePluginPortal()
jcenter()
...
}
做 gradle sync 和 clean build 看看是否可行。
那沒用?
別擔心(還)。這很常見。在某些情況下,上述解決方案不會單獨作業:
當從
jcenter()其他倉庫(如mavenCentral())移動時,作者決定更新版本號。這僅僅意味著您需要更新該依賴項的版本以從其他 repo 中獲取它。查找在失敗的構建日志中顯示為不可用的庫。查找它的 github 或開發檔案以檢查最新版本。Gradle 同步 干凈的構建。我們剛剛添加的存盤庫是流行的,但不是唯一的。當圖書館的作者不得不從
jcenter其他地方切換時,他們沒有選擇其中之一。在這種情況下,請查看 github 頁面或開發人員檔案。通常作者將所需的存盤庫放在這些頁面上。如果您發現專案中不存在該存盤庫,請添加它。Gradle 同步 干凈的構建。- 注意:一些作者之所以選擇存盤庫選項,
jitpack.io主要是因為它比其他作者更快更容易。但是您應該意識到對此的擔憂。來自gradle的Melix總結了對 jitpack.io 的關注。由于潛在的安全問題,我建議在添加之前咨詢團隊和安全專家。
- 注意:一些作者之所以選擇存盤庫選項,
好吧,現在是時候擔心了。您很可能正在使用一些已棄用或不再維護的庫。找到庫的 github 頁面,看看作者是否在自述檔案中宣告它已棄用或不再維護。你甚至可以檢查它最后一次提交的時間。如果是前一段時間,則意味著它不再維護,并且作者不關心將庫從
jcenter()任何其他 repo 移動。- 轉到 repo 的 GitHub 問題。一定有人發布了有關從
jcenter. 如果你幸運的話,有人甚至可能已經創建了分叉并將該分叉托管在其他地方。例如,我spanny在其中一個專案中使用,作者沒有移動它。GustavoRoss非常關心分叉和移動。 - 沒有人分叉搬家?那么你有兩個選擇。
- 尋找一個為您做同樣事情的備用活動庫。當然,這很耗時,但遠離已棄用的資源也是一個好主意。
- 如果您沒有時間集成新庫或不存在其他庫,那么請成為英雄并創建 GitHub 專案的 fork 并移動。
- 轉到 repo 的 GitHub 問題。一定有人發布了有關從
但是,嘿,我不記得我的代碼庫中有問題的庫嗎?這意味著,它是一個傳遞依賴(你的直接依賴的依賴)。再次檢查,您的直接依賴項的最新版本,希望新版本已修復此問題。
如何檢查直接和傳遞依賴?
- 您失敗的構建日志有答案。
![JCenter 是否永久關閉(10 月 31 日)?[復制]](https://i.stack.imgur.com/OA39w.png)
希望到此為止,您可以使構建正常作業。如果沒有,那么希望jcenter盡快回來并開始計劃遠離它。
uj5u.com熱心網友回復:
這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。終于經過幾個小時的頭部劉海,問題解決了。在->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 repos
}
}
希望能幫助到你 :)
uj5u.com熱心網友回復:
這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。是的,你并不孤單。Jcenter 今天似乎倒閉了。
我的解決方案jCenter是mavenCentral
從root/android/build.gradle
另外,不要忘記圖書館node_module/*error libaray*/android/build.gradle
uj5u.com熱心網友回復:
這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。我也遇到了這個問題,我不太清楚為什么 jcenter 回傳 403,但是您可以通過在存盤庫設定中添加mavenCentral()before來解決此問題,如下所示:jcenter()
repositories {
...
mavenCentral() // add this line
jcenter()
...
}
uj5u.com熱心網友回復:
這個問題的答案是社區的努力。編輯現有答案以改進這篇文章。它目前不接受新的答案或互動。我認為 mavenCentral 并不是 jcenter 的完全替代品。
我用的是阿里云的鏡像。替換jcenter()為maven { url "https://maven.aliyun.com/repository/jcenter" }.
不知道它是否可以從中國境外訪問,或者阿里云是否審查了一些包裹,或者它是最新的。
更換指南:
在android/build.gradle
buildscript {
...
repositories {
...
- jcenter()
maven { url "https://maven.aliyun.com/repository/jcenter" }
}
}
allprojects {
buildscript {
repositories {
maven { url "https://maven.aliyun.com/repository/jcenter" }
}
}
repositories {
...
- jcenter()
maven { url "https://maven.aliyun.com/repository/jcenter" }
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/524002.html
標籤:安卓行家中心
上一篇:無法從jcenter獲取元資料
下一篇:maven-shade-plugin:pom:3.2.4在上次嘗試錯誤期間無法從http://repo.maven.apache.org/maven2傳輸
