Gradle Firebase AdMob依赖项与应用程序兼容性v7 28.0.0发生冲突

时间:2019-04-12 00:27:18

标签: android firebase gradle admob

当我添加AdMob依赖项时,此红线出现:

First error

完整的错误消息:

  

所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到了   版本28.0.0、26.1.0。例子包括   com.android.support:animated-vector-drawable:28.0.0和   com.android.support:customtabs:26.1.0少...(Ctrl + F1)检查   信息:有一些库或工具和库的组合,   不兼容或可能导致错误的代码。一种这样的不兼容   正在使用一个版本的Android支持库进行编译   不是最新版本(或者特别是低于您的版本)   targetSdkVersion)。问题ID:GradleCompatible

如果我尝试使项目出现此错误消息:

Second error

我已经使缓存/重新启动,重新导入gradle无效,并且没有任何作用...

Gradle模块

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.dev.marcellocamara.pgm"
        minSdkVersion 19
        targetSdkVersion 28
        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 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support:customtabs:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.google.firebase:firebase-auth:16.2.1'
    implementation 'com.google.firebase:firebase-database:16.1.0'
    implementation 'com.google.firebase:firebase-storage:16.1.0'
    implementation 'com.google.android.gms:play-services-auth:16.0.1'
    implementation 'com.google.firebase:firebase-messaging:17.6.0'
    implementation 'com.google.firebase:firebase-ads:17.2.0'
}

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

Gradle应用

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.2'
        classpath 'com.google.gms:google-services:4.2.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

我查看了针对同一问题的另一个答案,但是没有一个像我一样使用太多的firebase库。他们要求添加支持v7 28.0.0,而我已经做到了。

1 个答案:

答案 0 :(得分:0)

通过遵循以下文档:https://developer.android.com/studio/build/multidex

我将multiDexEnabled true添加到了构建gradle模块:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.dev.marcellocamara.pgm"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

按照文档说明,为什么我将min SDK用作19,我添加了'com.android.support:multidex:1.0.3'作为构建gradle模块的依赖项,最后将android:name="android.support.multidex.MultiDexApplication"添加到了应用程序manifest.xml

错误消息消失,应用正在运行...