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

Flutter Android项目添加GMS服务时Gradle构建失败求助

解决Flutter Android项目添加GMS服务时的Gradle构建失败问题

从你的错误日志和配置来看,问题核心是Project级Gradle配置错误以及依赖声明位置不当,下面是具体的修复步骤:

1. 修正Project级build.gradle配置

你当前的Project-gradle存在两个关键问题:

  • 把应用运行依赖com.android.support:appcompat-v4错误放到了buildscriptclasspath中(classpath仅用于构建工具类依赖,不是应用运行依赖)
  • 重复声明了Gradle插件版本(同时写了3.2.1和3.3.1,引发版本冲突)

修改后的Project-gradle代码如下:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        // 保留统一的Gradle插件版本,这里选择3.3.1
        classpath 'com.android.tools.build:gradle:3.3.1'
        classpath 'com.google.gms:google-services:4.0.1'
        // 移除错误放置的appcompat依赖:classpath 'com.android.support:appcompat-v4:27'
        // 移除重复的Gradle插件声明:classpath 'com.android.tools.build:gradle:3.2.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

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

2. 修正App级build.gradle配置

  • 添加完整版本的AppCompat依赖(v4库已合并到v7中,推荐使用v7,且必须写完整版本号,不能只写27)
  • 确保compileSdkVersiontargetSdkVersion与support库版本保持一致(这里是27)

修改后的App-gradle关键部分代码:

android {
    // 确保编译版本与support库版本匹配
    compileSdkVersion 27
    defaultConfig {
        targetSdkVersion 27
        // 启用multidex(因为你引入了multidex依赖)
        multiDexEnabled true
        // 其他原有配置...
    }
}

dependencies {
    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'
    
    // 添加正确的AppCompat依赖(完整版本号)
    implementation 'com.android.support:appcompat-v7:27.1.1'
    
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'com.google.firebase:firebase-firestore:17.1.1'
}

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

3. 清理缓存并重新构建

完成配置修改后,执行以下操作:

  • 打开Android Studio,点击File -> Invalidate Caches / Restart,选择Invalidate and Restart
  • 等待项目重新同步完成后,尝试重新构建项目

错误原因总结

  • com.android.support:appcompat-v4是应用运行时依赖,必须放在App级gradle的dependencies块中,而非Project级的buildscript
  • 依赖版本号必须完整(如27.1.1),仅写主版本号27会导致Gradle无法找到对应构件
  • 重复声明Gradle插件版本会触发版本冲突,进而导致构建失败

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

火山引擎 最新活动