混合依赖项版本

时间:2018-03-07 18:30:08

标签: android android-studio dependencies

我开始学习开发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.0com.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.0com.android.support:cardview-v7:23.4.0

我不知道宣布旧版本的位置。

6 个答案:

答案 0 :(得分:2)

在build.gradle(项目)中使用classpath 'com.google.gms:google-services:3.2.0' // google-services plugin,然后在build.gradle(app)中添加以下firebase依赖项:

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

因为当您使用firebase时,其所有依赖项版本必须相同。 而对于第二个错误,请分享您想要实现的内容,因为版本差异。

答案 1 :(得分:2)

这是因为你正在使用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 for firebase-ui 3.2.2(查看https://github.com/firebase/FirebaseUI-Android/blob/master/constants.gradle

答案 2 :(得分:1)

将它添加到build.gradle(Module:app)的最后:

    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'
                }
            }
    }
}

答案 3 :(得分:0)

Android库版本应该使用与您未包含的buildToolsVersion相同的版本。对于SDK 27,您应该使用27.0.3。所以android部分应该以:

开头
compileSdkVersion 27
buildToolsVersion "27.0.3"

并且包含的​​库应该以

结尾
:27.0.3

答案 4 :(得分:0)

我解决了分析依赖树的问题:

let myMem = bigObject.member = bigObject.member || {};
myMem.value = 30;
console.log(bigObject.member.value);  // outputs 30

所以我看到冲突是gradlew app:dependencies

的传递依赖

然后我在build.glade上使用exclude:

com.firebaseui:firebase-ui-auth:0.6.0

没有更多混音版本:D

答案 5 :(得分:0)

cordova