Зависимость Android имеет разные версии для пути к классам компиляции и времени выполнения

Я использую в своем проекте множество библиотек, связанных с Firebase. После синхронизации я столкнулся со следующей ошибкой.

Зависимость Android com.google.firebase: firebase-iid имеет разные версии для пути к классам компиляции (17.0.3) и времени выполнения (17.1.1). Вы должны вручную установить ту же версию через DependencyResolution

Дело в том, что я даже не объявил firebase-iid в своих зависимостях, и это происходит как транзитивная зависимость от других библиотек firebase.

Запустив диаграмму зависимостей, я могу найти следующие вещи.

Версия 17.0.3 поступает из com.google.android.gms: play-services-measure-api: 16.4.0, тогда как 17.1.1 исходит из com.google.firebase: firebase -сообщение: 17.5.0

В идеале он должен разрешить это внутренне, и более высокая версия должна быть выбрана автоматически. Но этого не происходит.

Есть идеи, почему это происходит и как решить эту проблему?


person thedarkpassenger    schedule 05.04.2019    source источник


Ответы (2)


Gradle для com.google.android.gms:play-services-measurement-api: не обновлен. Последний выпуск - март 2019 г., версия: 16.4.0.

Итак, ваша реализация не подходит для этого измерения-api.

Использовать :

com.google.android.gms:play-services-measurement-api:16.4.0

com.google.firebase:firebase-messaging:17.5.0

обратитесь по этой ссылке: http://mesurement%20API

https://mvnrepository.com/artifact/com.google.firebase/firebase-messaging

person Hitesh Sarsava    schedule 05.04.2019

Да, вы правы, gradle должен автоматически разрешаться в одну версию библиотеки, но, как я иногда испытывал, это так, иногда нет. Но когда он не разрешает одну версию той же библиотеки, мы можем заставить ее использовать одну конкретную версию, как описано ниже.

configurations.all { 
  resolutionStrategy {
     force "com.google.android.gms:play-services-measurement-api:17.1.1"
     force "com.google.firebase:firebase-messaging:17.5.0"
  }
 }
  dependencies {
  // ... all dependencies here...
  }

Попробуйте использовать приведенный выше код, заставляющий gradle использовать одну версию. Может помочь в твоем случае.

person akashzincle    schedule 05.04.2019