Совместима ли аналитика сервисов Play с Gradle 3.3 / AndroidX?

При столкновении с моей зависимостью Android Gradle Plugin (с 3.2.1 -> 3.3.x) я начал видеть эту проблему:

D8: Program type already present: android.support.v4.media.RatingCompat$1

Этот класс находится в: com.android.support:support-media-compat Как предлагается здесь https://developer.android.com/jetpack/androidx/migrate Я добавил явную зависимость для версии библиотеки AndroidX: androidx.media:media.

Это не работает (та же проблема).

Тогда я делаю:

gradlew app:dependencies

Я вижу, что com.android.support:support-media-compat - это транзитивная зависимость от com.google.android.gms:play-services-analytics (16.0.7, последняя известная мне).

Я также попытался исключить транзитивную зависимость:

implementation ('com.google.android.gms:play-services-analytics:16.0.7') {
    exclude group: 'com.android.support', module: 'support-v4'
}

Но это не работает (зависимость support-v4 по-прежнему проявляется как транзитивная зависимость).

Мои версии

  1. com.android.tools.build:gradle:3.3.1
  2. Gradle 5.2.1

Свойства Gradle:

android.useAndroidX=true
android.enableJetifier=false

Есть предложения?


person Alix    schedule 15.02.2019    source источник


Ответы (1)


Вы должны установить:

android.enableJetifier=true

так что переходные зависимости конвертируются за вас.

person jkasnicki    schedule 15.02.2019
comment
Включение jetifier выявило тестовую библиотеку (org.robolectric: shadows-supportv4: 4.1), вызывающую проблемы, и дополнительные классы, которые необходимо было преобразовать в Androidx. После этого все заработало. - person Alix; 18.02.2019