Все библиотеки com.android.support должны использовать одну и ту же версию 'com.android.support:appcompat-v7:28.0.0-rc01' - PullRequest
0 голосов
/ 02 мая 2019

Хорошо, ребята, привет.Я новичок здесь (это мой первый пост, поэтому, если я сделал что-то не так, пожалуйста, прости меня и дай мне знать!).Не могли бы вы помочь мне с этой проблемой.Я действительно застрял.проверьте красную подчеркнутую линию на скриншоте ниже (зависимости)

Ошибка Android:

Все библиотеки com.android.support должны использовать одну и ту же спецификацию версий (смешивание версий может привести к сбоям во время выполнения).Найдено версии 28.0.0-rc01, 26.1.0.Примеры включают com.android.support:animated-vector-drawable:28.0.0-rc01 и com.android.support:support-media-compat:26.1.0 less ... (Ctrl + F1) Информация о проверке: Есть некоторыекомбинации библиотек или инструментов и библиотек, которые несовместимы или могут привести к ошибкам.Одной из таких несовместимостей является компиляция с версией библиотек поддержки Android, которая не является последней версией (или, в частности, версией ниже, чем ваша targetSdkVersion).

Снимок экрана: https://imgur.com/a/4C2Sxg3

Iпробовал следующее:

Все библиотеки com.android.support должны использовать точно такую ​​же спецификацию версии

Все библиотеки com.android.support должны использоватьточно такая же спецификация версии (смешанная версия может привести к сбоям во время выполнения)

build.gradle:

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.firebase:firebase-auth:16.0.3'
implementation 'com.google.firebase:firebase-core:16.0.3'
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso core:3.0.2' }

1 Ответ

0 голосов
/ 02 мая 2019

Приветствую и поздравляю с подробным вопросом!

Вы используете некоторые зависимости, и эти зависимости также могут иметь транзитивные зависимости .Это означает, что вы компилируете свой код для какого-то API, а ваши зависимости уже скомпилированы для какого-то API (и, возможно, немного отличаются или больше).Поэтому Gradle не понимает, какую версию этой зависимости принять - вашу или переходную от третьей стороны.Если оно будет автоматическим, это может привести к аварийному завершению во время выполнения, когда вы или ваша зависимость попытаетесь вызвать метод или класс, который был изменен или отсутствует в одной из версий этой общей зависимости.

Выможет устранять ваши зависимости с помощью gradle:

./gradlew dependencies

или даже лучше:

./gradlew dependencies | grep <name of the conflicting dependency> -B 20 -A 20

Обычный способ разрешения проблем в мире Android состоит в принудительном использовании определенной версии этой зависимости (обычносамое новое):

  configurations.all {
    resolutionStrategy {
      force <exact dependency version>
    }
  }

Два дополнения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...