Переход на AndroidX

Я обновил свою Android Studio до 3.2, и теперь я хочу автоматически перейти на AndroidX, используя from _1 _-> _ 2_, и теперь у него есть эта ошибка:

Зависимость Android «androidx.media:media» имеет разные версии для пути к классам компиляции (1.0.0-rc01) и времени выполнения (1.0.0). Вы должны вручную установить ту же версию через DependencyResolution


person Amir    schedule 23.10.2018    source источник


Ответы (4)


Вероятно, одна из ваших зависимостей использует androidx.media:media:1.0.0-rc1. Для принудительного все зависимости используют одну и ту же версию.
Попробуйте добавить следующий код на уровне вашего приложения build.gradle, и он должен работать.
Примерно так:

android {
    compileSdkVersion 28

    defaultConfig {
       // Your code
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
       // Your build types if any
    }

    configurations.all {
        resolutionStrategy {
            force 'androidx.media:media:1.0.0'
        }
    }
}

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

./gradlew :app:dependencies
person 2hamed    schedule 24.10.2018
comment
У меня была такая же проблема для этой зависимости androidx.legacy: legacy-support-v4, и я добавил их обоих в resolutionStrategy и исправил мою проблему. - person Amir; 24.10.2018
comment
Я столкнулся с той же проблемой. Где конкретно добавить эту стратегию на уровне приложения или уровне проекта build.gradle? - person Hardik Trivedi; 02.11.2018
comment
@HardikThibitedi Вы должны добавить его в файл градиента уровня приложения в корне вашей конфигурации. Я бы сказал прямо перед объявлением dependencies. - person 2hamed; 02.11.2018

В результате рефакторинга старый импорт будет заменен следующим:

implementation 'androidx.legacy:legacy-support-v4:1.0.0'

Вместо этого вы можете использовать следующее, если не планируете использовать устаревшие зависимости:

implementation 'androidx.appcompat:appcompat:1.0.0'

Это также устранит проблему, если вы вообще не используете носители ...

person prom85    schedule 31.10.2018
comment
Удаление implementation 'androidx.legacy:legacy-support-v4:1.0.0' сработало для меня. - person Hrishikesh Kadam; 16.11.2018

Попробуй исправить вручную.

Просто измените зависимость на:

androidx.media:media:1.0.0

И измените импорт в своих классах

person Stanislav Mukhametshin    schedule 23.10.2018
comment
Я вообще не использую androidx.media:media - person Amir; 24.10.2018

У меня была такая же проблема, и я решил ее, используя:

buildscript {
    ext{
        kotlin_version = '1.3.0' // Old 1.2.71
    ...
}

В конце концов я изменил версию Gradle с 3.2.1 на 3.3.1:

dependencies {
        classpath 'com.android.tools.build:gradle:3.3.1'
        classpath 'com.google.gms:google-services:4.0.1'
...

Я надеюсь, это поможет.

person Jhakiz    schedule 04.11.2019