У меня есть проект Android, который работает уже более 7 лет. Сегодня я обновил SDK до 34 (с 33), потому что Google требует от меня этого. После этого моя сборка Gradle начала постоянно давать сбой. Я не буду включать весь журнал (если это не необходимо), но вот ошибки, которые я получаю:
Required by:
project :app
> Could not resolve io.github.zncmn.libyuv:core:0.0.7.
> Could not get resource 'https://jitpack.io/io/github/zncmn/libyuv/core/0.0.7/core-0.0.7.pom'.
> Could not GET 'https://jitpack.io/io/github/zncmn/libyuv/core/0.0.7/core-0.0.7.pom'. Received status code 401 from server: Unauthorized
> Could not resolve io.github.zncmn.libyuv:core:0.0.7.
> Could not get resource 'https://jitpack.io/io/github/zncmn/libyuv/core/0.0.7/core-0.0.7.pom'.
> Could not GET 'https://jitpack.io/io/github/zncmn/libyuv/core/0.0.7/core-0.0.7.pom'. Received status code 401 from server: Unauthorized
> Could not find com.amulyakhare:com.amulyakhare.textdrawable:1.0.1.
Searched in the following locations:
- https://jcenter.bintray.com/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
- https://jitpack.io/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
- https://maven.google.com/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
- https://dl.google.com/dl/android/maven2/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
- file:/home/runner/.m2/repository/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
- https://repo.maven.apache.org/maven2/com/amulyakhare/com.amulyakhare.textdrawable/1.0.1/com.amulyakhare.textdrawable-1.0.1.pom
Required by:
project :app
> Could not find com.github.gcacace:signature-pad:1.2.1.
Searched in the following locations:
- https://jcenter.bintray.com/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
- https://jitpack.io/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
- https://maven.google.com/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
- https://dl.google.com/dl/android/maven2/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
- file:/home/runner/.m2/repository/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
- https://repo.maven.apache.org/maven2/com/github/gcacace/signature-pad/1.2.1/signature-pad-1.2.1.pom
Required by:
project :app
> Could not find com.mikhaellopez:circularimageview:3.2.0.
Searched in the following locations:
- https://jcenter.bintray.com/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
- https://jitpack.io/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
- https://maven.google.com/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
- https://dl.google.com/dl/android/maven2/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
- file:/home/runner/.m2/repository/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
- https://repo.maven.apache.org/maven2/com/mikhaellopez/circularimageview/3.2.0/circularimageview-3.2.0.pom
Required by:
project :app
Так продолжается и с некоторыми библиотеками, используемыми в моем проекте, а затем в конечном итоге происходит сбой.
Я больше ничего не менял, кроме targetSdkVersion на 34 вместо 33. Мой build.gradle выглядит так:
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.5.2'
classpath 'com.google.gms:google-services:4.3.14'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2'
}
}
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
maven {
url 'https://maven.google.com/'
}
// flatDir {
// dirs "$rootProject.projectDir/aars"
// }
}
}
Стоит отметить кое-что интересное: Я могу без проблем создать APK/Bundle локально. Проблема заключается в моем конвейере GitHub, который генерирует для меня пакет.
Кто-нибудь знает, как я могу это решить? Я столкнулся с несколькими сообщениями, в которых задавался этот конкретный вопрос, но, к сожалению, ответа не было.
Эти зависимости не будут найдены, поскольку JCenter закатился, т. е. он больше недоступен, даже в режиме только для чтения.
Поэтому добавление jcenter()
в ваш файл build.gradle не имеет никакого эффекта.
Все упомянутые выше зависимости размещены на JCenter/Bintray и не были перенесены в другие источники.
Вы можете выполнить одно из следующих действий
gradle showMeCache
build.gradle
объявите его как файл локальной зависимости (aar/jar).implementation "your_local_dependency.aar"
или создайте папку libs
и поместите в нее все свои зависимости и помогите gradle найти ее.
// Include local .jar and .aar files under the libs/ folder
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar", "*.aar"))))
Вы можете создать форк упомянутой библиотеки и разместить его на Maven Central, используя следующее руководство
Переносите или интегрируйте другие поддерживаемые библиотеки и делайте то же самое, что вам нужно.
Действительно, в этом была проблема. Большое спасибо! Это безумие видеть беспорядок, который может создать... В любом случае, для тех, у кого такая же проблема: самый простой способ - это найти свой кэш Gradle, скопировать .AAR и добавить их в свой проект как внешнюю библиотеку.