"файлы поддержки должны использовать точно такую ​​же версию" Ошибка Android Studio - PullRequest
0 голосов
/ 08 октября 2018

У меня есть следующие зависимости в моем уровне приложения build.gradle file

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:design:27.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
implementation 'com.android.volley:volley:1.1.1'
implementation 'com.github.bumptech.glide:glide:4.8.0'
implementation 'com.android.support:cardview-v7:27.0.2'
}

Они работают без ошибок.Но, когда я пытаюсь выставить новую стороннюю зависимость от CircleImageView implementation 'de.hdodenhof:circleimageview:2.2.0', сборка gradle завершается неудачно, и в строке implementation 'com.android.support:appcompat-v7:27.0.2' появляется ошибка All com.android.support libraries must use the exact same version....Мне интересно, как эта сторонняя библиотека создает проблемы в поддержке библиотек.Что там не так?

Ответы [ 4 ]

0 голосов
/ 08 октября 2018

Если вы хотите, чтобы все вспомогательные библиотеки, в том числе сторонние библиотеки, внутренне использовали одну и ту же версию библиотеки поддержки, добавьте приведенный ниже код на уровне вашего проекта gradle

ext {
    support_library_version = '27.1.1'
}

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->

            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex')) {
                details.useVersion "$support_library_version"
            }
        }
    }
}
0 голосов
/ 08 октября 2018

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

Измените их на v 27.1.1 (Дело в том, что они должны иметь одинаковую версию):

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:cardview-v7:27.1.1'

И затем, если вы увидели какие-либо ошибки, указывающие на «должна иметь ту же версию», запустите:

./gradlew dependencies

Чтобы увидеть, какая библиотека использует старую версию.исправить это, добавив обновленную версию библиотеки (так же, как и библиотеку поддержки) в зависимости build.gradle.

0 голосов
/ 08 октября 2018

Сторонняя библиотека внутренне использует библиотеку приложения, и поскольку версия, используемая проектом, отличается от версии библиотеки, она выдает ошибку.Обновление зависимостей appcompat, design и cardview до версии 27.1.1 работало нормально следующим образом.

dependencies {
  implementation fileTree(dir: 'libs', include: ['*.jar'])
  implementation 'com.android.support:appcompat-v7:27.1.1'
  implementation 'com.android.support.constraint:constraint-layout:1.0.2'
  implementation 'com.android.support:design:27.1.1'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
  implementation 'com.android.volley:volley:1.1.1'
  implementation 'com.github.bumptech.glide:glide:4.8.0'
  implementation 'com.android.support:cardview-v7:27.1.1'
  implementation 'de.hdodenhof:circleimageview:2.2.0'
}
0 голосов
/ 08 октября 2018

Эта библиотека также поддерживает библиотеки поддержки, но разных версий.В частности, он использует библиотеку support-annotations 27.1.0.

Вы можете сделать две вещи:

  1. Обновить ваши зависимости.27.0.2 устарела.27.1.0 тоже, но не так.
  2. Исключите эту библиотеку из вашей реализации и внедрите ее самостоятельно:

    implementation ("de.hdodenhof:circleimageview:2.2.0") {
        exclude group: "com.android.support" module: "support-annotations"
    }
    implementation 'com.android.support:support-annotations:27.1.1'
    

    Вы должны обновить все ваши зависимости поддержки до 27.1.1.

...