Вопрос или проблема
Недавно я перешел на Android Studio Ladybug | 2024.2.1 Patch 1, однако после переключения я сталкиваюсь с 4 ошибками во время синхронизации проекта.
Не удалось разрешить: com.github.smarteist:autoimageslider:1.4.0-appcompat
Показать в диалоговом окне структуры проекта
Показать детали
Затронутые модули: app
Не удалось разрешить: com.etebarian:meow-bottom-navigation-java:1.2.0
Показать в диалоговом окне структуры проекта
Показать детали
Затронутые модули: app
Не удалось разрешить: com.github.JakeWharton:ViewPagerIndicator:2.4.1
Показать в диалоговом окне структуры проекта
Показать детали
Затронутые модули: app
Не удалось разрешить: com.theartofdev.edmodo:android-image-cropper:2.8.0
Показать в диалоговом окне структуры проекта
Показать детали
Затронутые модули: app
Сколько бы я ни пытался, ничего не получается. Можете ли вы, пожалуйста, помочь мне решить эту проблему? Мои коды ниже:
build.gradle (Модуль)
плагины {
id 'com.android.application'
id 'com.google.gms.google-services'
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
}
android {
namespace 'com.project.localshop'
compileSdk 34
defaultConfig {
applicationId "com.project.localshop"
minSdk 21
targetSdk 34
versionCode 30
versionName "3.30.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
signingConfig signingConfigs.debug
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
viewBinding true
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.annotation:annotation:1.9.0'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.8.6'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6'
implementation 'androidx.fragment:fragment:1.8.4'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.github.bumptech.glide:glide:4.15.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.15.0'
implementation "androidx.viewpager2:viewpager2:1.1.0"
implementation "com.google.code.gson:gson:2.10.1"
implementation 'com.google.android.material:material:1.13.0-alpha07'
implementation 'com.karumi:dexter:6.2.3'
implementation 'com.google.android.gms:play-services-maps:19.0.0'
implementation 'com.google.android.gms:play-services-location:21.3.0'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation 'com.android.support:design:28.0.0'
implementation "com.airbnb.android:lottie:6.0.0"
implementation 'de.hdodenhof:circleimageview:3.1.0'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'com.android.volley:volley:1.2.1'
implementation 'androidx.browser:browser:1.8.0'
implementation platform("com.google.firebase:firebase-bom:33.4.0")
implementation 'com.google.firebase:firebase-auth'
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-firestore'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-appcheck-playintegrity'
implementation 'com.google.android.play:integrity:1.4.0'
implementation 'com.github.smarteist:autoimageslider:1.4.0-appcompat'
implementation 'com.etebarian:meow-bottom-navigation-java:1.2.0'
implementation 'com.github.JakeWharton:ViewPagerIndicator:2.4.1'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
}
build.gradle(Проект)
buildscript {
dependencies {
classpath 'com.google.gms:google-services:4.4.2'
}
}// Файл сборки верхнего уровня, куда вы можете добавить параметры конфигурации, общие для всех подпроектов/модулей.
плагины {
id 'com.android.application' version '8.7.1' apply false
id 'com.android.library' version '8.7.1' apply false
id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
}
settings.gradle
import org.gradle.api.initialization.resolve.RepositoriesMode
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenLocal()
mavenCentral()
maven { url 'https://jitpack.io' }
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'https://repo.spring.io/plugins-release/' }
maven { url 'https://maven.cashfree.com/release' }
}
}
rootProject.name = "localshop"
include ':app'
Большое спасибо за вашу помощь и поддержку.
Я пытался добавить jcenter() в файл settings.gradle, но, похоже, он теперь устарел, и новая версия – это mavenCentral(), который я уже добавил.
Все зависимости, которые вы упомянули, не поддерживались долгое время.
-
com.github.smarteist:autoimageslider:1.4.0-appcompat последний раз был выпущен в 2020 году
-
https://github.com/oneHamidreza/MeowBottomNavigationJava последний раз был выпущен в 2020 году
-
https://github.com/JakeWharton/ViewPagerIndicator последний раз был обновлен 12 лет назад
-
https://github.com/ArthurHub/Android-Image-Cropper последний раз был обновлен 6 лет назад
Поскольку JCenter закрывается, издатели этих библиотек должны перенести их в MavenCentral. Если они этого не сделали, вы не сможете их использовать.
Ваши варианты:
- Клонировать репозитории и работать с ними, чтобы они соответствовали текущим уровням API
- Найти более современные альтернативные библиотеки, которые помогут вам в вашей задаче
Ответ или решение
Проблема, с которой вы столкнулись, связана с невозможностью разрешения зависимостей в вашем проекте Android. Давайте подробно разберем, что происходит, и как это можно исправить.
1. Причины ошибки
При переходе на новую версию Android Studio (Ladybug | 2024.2.1 Patch 1) и синхронизации проекта вы столкнулись с несколькими сообщениями об ошибках, связанными с отказом в разрешении следующих зависимостей:
com.github.smarteist:autoimageslider:1.4.0-appcompat
com.etebarian:meow-bottom-navigation-java:1.2.0
com.github.JakeWharton:ViewPagerIndicator:2.4.1
com.theartofdev.edmodo:android-image-cropper:2.8.0
Проанализируя каждую зависимость, можно заметить, что все они являются устаревшими и не обновляются на протяжении длительного времени:
autoimageslider
– последний релиз был в 2020 году.meow-bottom-navigation-java
– также актуальна с 2020 года.ViewPagerIndicator
– не обновлялся уже более 12 лет.android-image-cropper
– последний релиз был 6 лет назад.
2. Потенциальное решение
Из-за перехода JCenter в статус завершения работы, многие библиотеки не были перенесены в MavenCentral. Если поддержка библиотек не обновляется, это может привести к невозможности их использования в современных проектах. Чтобы решить эту проблему, у вас есть несколько опций:
-
Клонирование репозиториев:
- Вы можете клонировать соответствующие репозитории на GitHub и внести необходимые изменения, чтобы они соответствовали современным стандартам API. Это может потребовать значительных усилий и навыков разработки, так как вам придется следить за обновлениями из других зависимостей.
-
Поиск новых альтернативных библиотек:
- Возможно, вам стоит рассмотреть возможность замены устаревших библиотек на более современные и поддерживаемые альтернативы. Например:
- Вместо
autoimageslider
можно использоватьViewPager2
сRecyclerView
, который обеспечивает аналогичную функциональность и активно поддерживается. - Для
MeowBottomNavigation
существуют другие библиотеки для навигации, такие какBottomNavigationView
, которая входит в составMaterial Components
. ViewPagerIndicator
может быть заменен на его более современные аналоги.- Для работы с обрезкой изображений рекомендую использовать библиотеку
CropImage
отArthurHub
, которая активно поддерживается.
- Вместо
- Возможно, вам стоит рассмотреть возможность замены устаревших библиотек на более современные и поддерживаемые альтернативы. Например:
3. Как избежать проблем в будущем
- Постоянно проверяйте зависимость на актуальность: Прежде чем добавлять новую библиотеку, исследуйте ее историю обновлений и активность сообщества.
- Используйте современные решения: Обратите внимание на изменения в Android API и выбирайте библиотеки, совместимые с последними версиями.
- Следите за новыми релизами: Подписывайтесь на обновления выбранных вами библиотек через GitHub или другие ресурсы, чтобы быть в курсе новых версий и патчей.
Заключение
Ваша текущая проблема связана с устаревшими зависимостями, которые не могут быть разрешены в новой версии Android Studio. Рекомендуется либо обновить библиотеки до более современных аналогов, либо при необходимости обновить сами библиотеки. Убедитесь, что ваши зависимости активны и имеют сообщество, которое поддерживает их. Это поможет избежать подобных проблем в будущем и обеспечит стабильность вашего проекта.