После обновления до андроид студии 2.3 я получил это сообщение об ошибке. Я знаю, что это просто подсказка, поскольку приложение работает нормально, но это действительно странно.
Все библиотеки com.android.support должны использовать одну и ту же спецификацию версий (смешивание версий может привести к сбоям во время выполнения). Найдено версии 25.1.1, 24.0.0. Примеры включают com.android.support:animated-vector-drawable:25.1.1 и com.android.support:mediarouter-v7:24.0.0
мой gradle:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.android.support:design:25.1.1'
compile 'com.android.support:recyclerview-v7:25.1.1'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.google.android.gms:play-services-maps:10.2.0'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'io.reactivex.rxjava2:rxjava:2.0.1'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'com.jakewharton:butterknife:8.4.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
compile 'com.blankj:utilcode:1.3.6'
compile 'com.orhanobut:logger:1.15'
compile 'com.facebook.stetho:stetho:1.4.2'
provided 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.google.auto.value:auto-value:1.2'
annotationProcessor 'com.ryanharter.auto.value:auto-value-parcel:0.2.5'
compile 'com.mikepenz:iconics-core:2.8.2@aar'
compile('com.mikepenz:materialdrawer:5.8.1@aar') { transitive = true }
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar'
compile 'me.zhanghai.android.materialprogressbar:library:1.3.0'
compile 'com.github.GrenderG:Toasty:1.1.1'
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.8.0'
compile 'com.github.MAXDeliveryNG:slideview:1.0.0'
compile 'com.facebook.fresco:fresco:1.0.1'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.maps.android:android-maps-utils:0.4.4'
compile 'com.github.jd-alexander:library:1.1.0'
}
android
build.gradle
humazed
источник
источник
Ответы:
Вы можете решить эту проблему с помощью одного из следующих решений:
Обновить:
Начиная с Android Studio 3.0, это становится намного проще, так как теперь он показывает более полезный совет, поэтому нам нужно только следовать этому совету.
например:
Решение:
Добавьте явно библиотеку со старой версией, но с новым номером версии.
в моем случае,
com.android.support:customtabs:26.1.0
поэтому мне нужно добавить:т.е.: взять библиотеку из второго элемента и реализовать ее с номером версии из первого.
Примечание: не забудьте нажать синхронизацию сейчас, чтобы gradle мог перестроить граф зависимостей и посмотреть, есть ли еще конфликты.
Объяснение:
вы можете быть смущены сообщением об ошибке, так как не используйте,
customtabs
так как у меня конфликт !!ну ... вы не использовали его напрямую, но одна из ваших библиотек использует внутреннюю старую версию
customtabs
, поэтому вам нужно запросить ее напрямую.если вам интересно узнать, какая из ваших библиотек отвечает за старую версию, и, возможно, попросите автора обновить свою библиотеку, запустите отчет о зависимостях Gradle, посмотрите старый ответ, чтобы узнать как.
Обратите внимание на это
Старый ответ:
вдохновленный ответом CommonsWare :
Запустите отчет о зависимостях Gradle, чтобы увидеть, каково ваше полное дерево зависимостей.
Оттуда вы увидите, какая из ваших библиотек запрашивает другую версию библиотек поддержки Android. За то, что он просит, вы можете запросить его напрямую с версией 25.2.0 или использовать другие подходы Gradle для разрешения конфликтов, чтобы получить те же версии.
Обновить:
Начиная с версии плагина Gradle: 3.0
compile
был замененimplementation
илиapi
посмотрите этот ответ на разницу.следовательно используйте вместо:
или для windows cmd:
и искать конфликтующую версию.
Для меня ошибка исчезла после удаления
com.google.android.gms:play-services:10.2.0
И только включить,
com.google.android.gms:play-services-location:10.2.0
и такcom.google.android.gms:play-services-maps:10.2.0
как они являются единственными двумя игровыми сервисами, которые я использую.Я думаю, что они
gms:play-services
зависят от некоторых старых компонентов библиотеки поддержки, поэтому нам нужно добавить их явно самим.для AS 3.0 старше.
Запустить:
Пример:
если кто-то знает лучший способ в новом плагине Gradle, пожалуйста, дайте мне знать.
источник
com.google.android.gms:play-services:10.2.0
поддерживает SDK 14 и выше, если вы хотите использовать ниже SDK 14, вам нужно использовать версию ,10.0.1
как указано в stackoverflow.com/a/42315590/6248491examples include
текст в сообщении об ошибке показывает фактические примеры из вашего собственного проекта, а не расплывчатые общие примеры типа проблемы. Возьмите библиотеку из второго элемента и внедрите ее с номером версии из первого.project/.idea/libraries
папку в вашей файловой системе и посмотрите, какие библиотеки отличаются.build.gradle
файл.Например:
источник
Для всех случаев, а не только для этих версий или библиотек:
Обратите внимание на небольшое информационное окно, которое говорит что-то об ошибке, оно говорит примеры, которые вы должны изменить и добавить .
В этом случае:
Ваш
это версия 25.1.1 , а ваша
это версия 24.0.0 , поэтому вы должны добавить посредник с той же версией:
И делайте это для каждого примера, о котором говорит маленькое информационное окно, в этом случае все библиотеки, которые не имеют версии 25.1.1.
Вы должны синхронизировать gradle после того, как вы исправите указанную библиотеку, чтобы увидеть следующую библиотеку и пакет, который вы должны изменить.
ВАЖНЫЙ:
Если вы явно не используете одну или несколько указанных библиотек и она выдает ошибку, это означает, что она используется внутри другой библиотеки, в любом случае явно скомпилируйте ее.
Вы также можете использовать другой метод, чтобы увидеть разницу версий всех библиотек, которые вы на самом деле компилируете (например, запустить отчет о зависимостях gradle или перейти к файлам ваших библиотек), реальная цель - скомпилировать все библиотеки, которые вы используете с та же версия .
источник
support:mediarouter
именно делает?Лучший способ решить эту проблему - реализовать все «com.android.support: ...», предложенные Android Studio.
(Не имеет значения, какие версии поддержки вы используете - 27.1.1, 28.0.0 и т. Д.)
Поместите курсор на строку ошибки, например
Android Studio подскажет, какая версия com.android.support: ... отличается от версии com.android.support:appcompat-v7:28.0.0.
пример
Так что добавь
com.android.support:animated-vector-drawable:28.0.0
&com.android.support:exifinterface:28.0.0
. Теперь синхронизируйте файл Gradle.Один за другим пытайтесь реализовать все предложенные «com.android.support: ...», пока в этой строке не будет ошибки
implementation 'com.android.support:appcompat-v7:28.0.0'
В моем случае я добавил
Все эти зависимости могут отличаться для вас.
источник
Добавьте это в самый конец вашего build.gradle (Модуль: приложение):
Убедитесь, что вы заменили «25 .3.1» версией библиотеки поддержки Android, которую вы хотите использовать для всех зависимостей, она не должна быть ниже, чем ваша версия SDK для компиляции.
чем повторно синхронизировать Gradle
источник
У меня была точно такая же проблема после обновления до Android Studio 2.3
Добавление этой строки в зависимости решило мою проблему:
источник
renderscriptSupportModeEnabled false
это в false. И добавил компиляцию'com.android.support:customtabs:25.2.0'
и ошибка ушла.А) Беги
gradle dependencies
или./gradlew dependencies
Б) Посмотрите на свое дерево и выясните, какая из ваших зависимостей указывает другую версию библиотеки поддержки для зависимости, которую вы не контролируете.
Я не осознавал, что это предупреждение также отображается, если зависимость полностью не используется непосредственно вашим собственным кодом. В моем случае Facebook указывает некоторые библиотеки поддержки, которые я не использовал, вы можете видеть ниже, большинство этих зависимостей были переопределены моей собственной спецификацией 25.2.0, обозначенной символами -> XXX (*) . Вид карты и пользовательские вкладки не были изменены никем, поэтому мне нужно запросить 25.2.0 для них, даже если я ими не пользуюсь.
Если Gradle уже предупредил вас и привел примеры ...
... это даже проще, если вы добавите некоторую подсветку grep для более низкой версии, поскольку она
gradle dependencies
может быть довольно многословной:источник
Используйте переменные : если вы сделаете что-то подобное, вам будет проще убедиться, что вы используете одну и ту же версию со всеми библиотеками.
Дополнительную информацию о том, как Google предлагает вам управлять этими версиями, можно найти в этой статье: https://developer.android.com/studio/build/index.html#top-level
источник
просто добавьте это:
Updated
для новых версий SDKисточник
Если та же ошибка включена
appcompat
тогда добавление
design
решило это.Для меня добавление
был в том числе
appcompat-v7:23.1.1
вбез
vlc
,appcompat
одного достаточно.источник
Как вы уже видели все ответы и комментарии выше, но этот ответ должен прояснить то, что новый разработчик может не получить легко.
./gradlew -q приложение зависимостей: зависимости --configuration compile
Вышеуказанная строка спасет вашу жизнь без сомнения, но как получить точную точку от результата вышеупомянутой линии.
Когда вы получаете всю диаграмму зависимостей или список из вышеприведенной команды, вам нужно искать конфликтующий номер версии, который вы получаете в своем коде. пожалуйста, смотрите изображение ниже.
На изображении выше вы можете видеть, что 23.4.0 создает проблему, но мы не смогли найти ее в нашем файле Gradle. Так что теперь этот номер версии (23.4.0) спасет нас. Когда у нас будет этот номер, мы найдем его в результате выполнения команды выше и напрямую импортируем эту зависимость непосредственно в наш файл Gradle. Пожалуйста, смотрите изображение ниже, чтобы получить четкое представление.
Вы можете ясно видеть, что com.android.support:cardview-v7:23.4.0 и com.android.support:customtabs:23.4.0 используют версию, которая создает проблему. Теперь просто скопируйте эти строки из списка зависимостей и явно используйте их в нашем файле Gradle, но с обновленной ссылкой на версию
реализация "com.android.support:cardview-v7:26.1.0" реализация "com.android.support:customtabs:26.1.0"
источник
Другой способ разрешить конфликты - просто установить правильную версию для всех зависимостей, например так:
https://docs.gradle.org/current/userguide/customizing_dependency_resolution_behavior.html
источник
Используйте support-v13 вместо support-v4
источник
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:support-v13:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
добавить их в зависимости уровня приложения
источник
Моя проблема похожа на вашу. Здесь существует ошибка!
compile 'com.android.support:appcompat-v7:25.3.0'
Все библиотеки com.android.support должны использовать одну и ту же спецификацию версий (смешивание версий может привести к сбоям во время выполнения). Найдено версии 25.3.0, 24.0.0. Примеры включают в себя «com.android.support:animated-vector-drawable:25.3.0» и «com.android.support:mediarouter-v7:24.0.0».
Просмотр этих примеров включает в себя «com.android.support:animated-vector-drawable:25.3.0» и «com.android.support:mediarouter-v7:24.0.0».
просто добавьте эти коды в зависимости, убедитесь, что версии совпадают.
источник
Я получил ту же ошибку после добавления
compile 'com.google.android.gms:play-services:10.2.4'
с компиляцией'com.android.support:appcompat-v7:25.3.1'
.Добавление
animated-vector-drawable
иmediarouter libs
исправление проблемы.источник
У меня было это:
и получил эту ошибку:
Решения были просты - все основные зависимости были правильными, но все же оставались - любые сторонние зависимости. Удален один за другим, пока не найден виновник, и оказывается Facebook! он использует версию 27.0.2 библиотек поддержки Android. Я попытался добавить версию 27.1.1 cardview, но это не сработало, и решение все еще было достаточно простым.
источник
Я столкнулся с этой проблемой после обновления до Android Studio 3.4 и SDK версии до 28.0.0. Применение ниже зависимости решило проблему для меня.
источник
Я использовал эти два, чтобы решить мою проблему после обновления до Android Studio 2.3
источник
У меня была такая же проблема раньше, и я получил решение для нее.
Я только добавил библиотеки, которые имели другую версию, но с той же самой моей версией
support:appcompat
.Для вашей ошибки, например:
* Решение состоит в том, чтобы скомпилировать версии этих библиотек следующим образом:
compile 'com.android.support:mediarouter-v7:25.1.1'
-Если другая библиотека имела такую же проблему и имела другую версию, просто скомпилируйте ее с вашим
support:appcompat
версиейЭто решило мою проблему, и я надеюсь, что это решит вашу.
С наилучшими пожеланиями :)
источник
После поиска и объединения ответов, у 2018 года появилась версия этого вопроса и у меня сработало:
1) На вкладке навигации измените его на вид проекта
2) Перейдите к [YourProjectName] /. Idea / library /
3) Удалите все файлы, начиная с Gradle__com_android_support_ [имя_библиотеки]
Например: Gradle__com_android_support_animated_vector_drawable_26_0_0.xml
4) В вашем файле Gradle определите переменную и используйте ее для замены номера версии, например, $ {variableName}
Переменная Def:
Используйте переменную:
пример gradle:
источник
Очень просто с новой версией андроид студии 3.x.
Просто скопируйте версию, которая меньше текущей версии, и добавьте ее явно с тем же номером версии, что и текущая версия.
пример
Просто скопируйте версию
com.android.support:exifinterface:27.1.0
и измените ееcom.android.support:exifinterface:27.1.1
так, чтобы она стала равной текущей версии, которую вы используете, и добавьте ее в зависимости от gradle следующим образом.Примечание. По завершении не забудьте нажать « Синхронизировать» вверху редактора.
источник
в обновлении 2018 для этой ошибки добавить реализацию из структуры проекта
в режиме проекта -> Внешние библиотеки вы можете найти свою проблему, в моем случае я использую версию 28 и внешние библиотеки, которые я нашел
com.android.support:support-media-compat-26.0.0
и здесь была ошибка.после внедрения
support v13
и работаетисточник
Вы определили любую другую зависимость для компиляции с версией
24.0.0
вместо25.1.1
. Пожалуйста, установите все версии зависимостей так же, как25.1.1
.источник
Мне пришлось добавить следующие строки в Gradle, чтобы удалить ошибку
источник
Я запустил задачи ./gradlew --all и проверил наличие зависимостей, отличных от целевой версии (25.3.1). Вы получите что-то вроде этого:
В этом случае я использовал таргетинг на 25.3.1 и имел некоторые зависимости, ориентированные на разные версии, когда я запускал эту команду. Хитрость заключается в том, чтобы определить зависимости в этом списке, которые нацелены на предыдущие версии, и переопределить это, импортировав самую последнюю версию зависимости в Gradle.
источник
У меня та же проблема, но я решил это, добавив эти три линии
Теперь все работает отлично
источник
Вот мой поток, чтобы исправить это предупреждение
build.gradle
Для просмотра / проверки
dependencies
всей библиотеки в вашем приложенииОткройте терминал и запустите
./gradlew app:dependencies
Чтобы просмотреть
dependencies
конкретную библиотеку в вашем приложении, следуйте инструкциям здесь: - Как исключить зависимости конкретной зависимости в GradleНадеюсь, это поможет
источник
Откройте внешнюю библиотеку вашего проекта, вы увидите, что какая-то библиотека все еще использует предыдущую версию, хотя вы не упомянули эту библиотеку, поэтому я предлагаю просто использовать конкретную версию библиотеки для тех, кто решит вашу проблему.
источник
Я просто обновляю свой репозиторий поддержки Android до (ревизия: 44.0.0); затем инструменты Android SDK и эмулятор до последней версии 25.3.1 из sdk manager> инструменты SDK И это решило мою проблему.
источник