You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android集成广告横幅遇Gradle依赖解析错误,请求协助解决

解决Android集成Google广告横幅的Gradle依赖解析错误

首先,你的错误核心原因有两个:

  1. 项目没有配置Google Maven仓库,而JCenter已经不再托管最新版本的Google Play Services依赖;
  2. 当前项目的compileSdkVersion版本过低,无法兼容你使用的Play Services Ads版本。

让我们一步步解决:

1. 添加Google Maven仓库到项目根目录的build.gradle

Google在2017年后就将Play Services和Android Support库迁移到了自己的Maven仓库,所以必须在项目根配置中添加这个仓库,否则Gradle找不到对应版本的依赖包。

修改项目根目录的build.gradle文件:

buildscript {
    repositories {
        google() // 优先添加Google仓库
        jcenter()
    }
    dependencies {
        // 确保Gradle插件版本至少为3.0.0,以支持Google仓库和新版依赖
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

allprojects {
    repositories {
        google() // 这里同样需要添加
        jcenter()
    }
}

2. 更新App模块的build.gradle配置

你的当前compileSdkVersion是23,而play-services-ads:15.x要求最低compileSdkVersion为26,同时需要同步升级Support库版本:

修改app模块的build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26 // 升级到26或更高版本(推荐28以兼容更多设备)
    buildToolsVersion "26.0.2" // 对应compileSdk的版本

    defaultConfig {
        applicationId "com.onlines.mushafkareem"
        minSdkVersion 16
        targetSdkVersion 26 // 同步升级到与compileSdk一致的版本
        versionCode 19
        versionName "1.1.0"
        multiDexEnabled true
    }

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

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar']) // 替代过时的compile关键字
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:26.1.0' // 与compileSdk版本匹配
    // 统一依赖版本为错误提示中寻找的15.0.1,避免依赖传递导致的版本不一致
    implementation 'com.google.android.gms:play-services-ads:15.0.1'
}

3. 清理缓存并同步项目

完成上述修改后:

  • 点击Android Studio右上角的Sync Project with Gradle Files按钮同步项目;
  • 如果同步仍有问题,执行File -> Invalidate Caches... -> Invalidate and Restart清理缓存并重启IDE;
  • 最后执行Build -> Clean Project再重新构建。

补充说明

你依赖中写的是15.0.0但错误提示寻找15.0.1,这是依赖传递导致的:项目中其他依赖可能依赖了更高版本的Play Services,Gradle会自动尝试统一到最高版本,所以直接指定15.0.1可以避免版本冲突。

内容的提问来源于stack exchange,提问作者Motie Khyaoui

火山引擎 最新活动