Смешивание версий версий

Я начинаю учиться разрабатывать приложения для Android.
Я следую учебному пособию по Firebase, и я получаю некоторые ошибки на моем build.gradle файл.

Может кто-нибудь, пожалуйста, помогите мне?

мой build.gradle файл:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "br.com.brunots.firebasetests"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation ''
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.google.firebase:firebase-core:11.8.0'
    testImplementation 'junit:junit:4.1com.android.support:appcompat-v7:27.1.02'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    compile 'com.android.support:design:27.1.0'
    compile 'com.firebaseui:firebase-ui:0.6.0'
}


apply plugin: 'com.google.gms.google-services'

Это ошибки:

  • Все библиотеки gms / firebase должны использовать одну и ту же спецификацию версий (смешивание версий может привести к сбоям во время выполнения). Найдено версии 9.6.0, 11.8.0. Примеры включаютcom.google.android.gms:play-services-auth:9.6.0 а такжеcom.google.android.gms:play-services-basement:11.8.0
  • Все библиотеки com.android.support должны использовать одну и ту же спецификацию версии (смешивание версий может привести к сбоям во время выполнения). Найдено версии 27.1.0, 23.4.0. Примеры включаютcom.android.support:animated-vector-drawable:27.1.0 а такжеcom.android.support:cardview-v7:23.4.0

Я не знаю, где это объявлено в старых версиях.

6 ответов

Решение

Это связано с тем, что вы используете firebase-ui версии 0.6.0, которая неявно использует firebase и службу Google Play версии 9.6.0 (подробнее об этом читайте по адресу https://github.com/firebase/FirebaseUI-Android/releases/tag/0.6.0). Итак, вы не можете использовать следующее:

implementation 'com.google.firebase:firebase-core:11.8.0'
compile 'com.firebaseui:firebase-ui:0.6.0'

вам нужно использовать firebase-ui версии 3.2.2, которая использует firebase 11.8.0 (подробнее на https://github.com/firebase/FirebaseUI-Android), например так:

implementation 'com.google.firebase:firebase-core:11.8.0'
implementation 'com.firebaseui:firebase-ui:3.2.2'

и вам также нужно использовать библиотеку поддержки версии 27.0.2 для firebase-ui 3.2.2 (смотрите https://github.com/firebase/FirebaseUI-Android/blob/master/constants.gradle)

Использование classpath 'com.google.gms:google-services:3.2.0' // google-services plugin в вашем build.gradle(проект), затем в build.gradle(приложение) добавьте следующие зависимости Firebase:

dependencies {
  compile 'com.google.firebase:firebase-core:11.8.0'
  compile 'com.firebaseui:firebase-ui:11.8.0'}

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

Добавьте это в самый конец вашего build.gradle (Модуль: приложение):

    configurations.all {
        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
            def requested = details.requested
            if (requested.group == 'com.android.support') {
                if (!requested.name.startsWith("multidex")) {
                    details.useVersion '25.3.1'
                }
            }
    }
}

Я решил, что анализируя дерево зависимостей:

gradlew app:dependencies

так что я увидел, что конфликты являются переходными зависимостями com.firebaseui:firebase-ui-auth:0.6.0

тогда я использую исключение на моем build.glade:

compile ('com.firebaseui:firebase-ui:0.6.0') {
    exclude group: 'com.android.support'
    exclude group: 'com.google.firebase'
    exclude group: 'com.google.android.gms'
}

Нет больше смешивания версий:D

Предполагается, что версии библиотеки Android будут использовать ту же версию, что и buildToolsVersion, которую вы не включили. Для SDK 27 вы должны использовать 27.0.3. Поэтому раздел Android должен начинаться с:

compileSdkVersion 27
buildToolsVersion "27.0.3"

и включенные библиотеки должны заканчиваться

:27.0.3
configurations.all {
    resolutionStrategy {
        implementation 'com.android.support:design:27.1.0'
    }
}
Другие вопросы по тегам