Сборка Android Gradle перестала работать после обновления до SDK 34

У меня есть проект 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, который генерирует для меня пакет.

Кто-нибудь знает, как я могу это решить? Я столкнулся с несколькими сообщениями, в которых задавался этот конкретный вопрос, но, к сожалению, ответа не было.

1
0
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эти зависимости не будут найдены, поскольку JCenter закатился, т. е. он больше недоступен, даже в режиме только для чтения.

Поэтому добавление jcenter() в ваш файл build.gradle не имеет никакого эффекта.

Все упомянутые выше зависимости размещены на JCenter/Bintray и не были перенесены в другие источники.

Вы можете выполнить одно из следующих действий

  1. Загляните в кеш Gradle, чтобы увидеть, куда он загрузил эти размещенные файлы для использования. Это так же просто, как использовать команду
gradle showMeCache
  1. Перейдите на страницу библиотеки Github, загрузите код и создайте новый модуль в своем приложении, который должен быть отделен от всего остального кода, а затем в своем файле 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"))))
  1. Вы можете создать форк упомянутой библиотеки и разместить его на Maven Central, используя следующее руководство

  2. Переносите или интегрируйте другие поддерживаемые библиотеки и делайте то же самое, что вам нужно.

Действительно, в этом была проблема. Большое спасибо! Это безумие видеть беспорядок, который может создать... В любом случае, для тех, у кого такая же проблема: самый простой способ - это найти свой кэш Gradle, скопировать .AAR и добавить их в свой проект как внешнюю библиотеку.

Anael 22.08.2024 14:42

Другие вопросы по теме