添加Mobile Ads SDK后,应用停止同步

时间:2019-02-11 06:06:48

标签: android android-gradle android-manifest ads

我的应用运行正常,但是添加了Mobile Ads SDK后,它停止了同步。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "abc
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    sourceSets {
        main {
            assets.srcDirs = ['src/main/assets', 'src/main/assets/images', 'src/main/assets/databases'] 
            res.srcDirs =['src/main/res', 'src/main/res/menu', 'src/main/res/anim', 'src/main/res/values-ja']
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:support-v4:28.0.0'
    implementation 'com.android.support:support-vector-drawable:28.0.0'
    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.sothree.slidinguppanel:library:3.4.0'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    implementation 'com.google.android.gms:play-services-ads:17.1.1'
}

这是错误。

  

清单合并失败:属性   meta-data#android.support.VERSION@value value =(26.0.2)来自   [com.android.support:recyclerview-v7:26.0.2]   AndroidManifest.xml:25:13-35         也出现在[com.android.support:customtabs:26.1.0] AndroidManifest.xml:25:13-35 value =(26.1.0)。         建议:在AndroidManifest.xml:23:9-25:38的元素上添加'tools:replace =“ android:value”'以进行覆盖。

我不知道该错误是什么意思,有人遇到过同样的问题吗?

3 个答案:

答案 0 :(得分:1)

问题:

问题是支持库版本冲突。

解决方案:

第一步,您需要尝试的是使用通用版本的支持库,您可以声明一个通用变量:

supportLibraryVersion = 28.0.0

并针对同一包的所有依赖项引用相同的内容:

implementation "com.android.support:appcompat-v7:$supportLibraryVersion"
implementation "com.android.support:support-v4:$supportLibraryVersion"

第二步: 您需要调试依赖关系列表,使用./gradlew dependencies命令将列出依赖关系树。分析依赖关系树,您将看到哪个库内部引用了支持库的哪个版本:

例如,该库的旧版本: com.android.support:recyclerview-v7:26.0.2

答案 1 :(得分:0)

移动Ads SDK可能具有与您的应用程序中使用的支持库版本不同的支持库版本。该错误明确表明您的AndroidManifest.xml文件中存在另一个版本。该错误还表明-

add 'tools:replace="android:value"' to element at AndroidManifest.xml:23:9-25:38 to override

它还显示了需要添加此行的行。我认为那应该解决问题。

答案 2 :(得分:0)

打开您的AndroidManifest.xml。您会在下面看到Merged Manifest。现在从您的错误日志中。

  

[com.android.support:recyclerview-v7:26.0.2]   AndroidManifest.xml:25:13-35也位于   [com.android.support:customtabs:26.1.0] AndroidManifest.xml:25:13-35   值=(26.1.0)。

您的清单文件与同一库的两个版本冲突。因此,请点击Merged Manifest,您将得到

  

将'tools:replace =“ android:value”'添加到位于的元素   AndroidManifest.xml:23:9-25:38进行覆盖

点击。问题就解决了。