You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter项目执行gradlew signingReport获取SHA-1时遇依赖兼容错误

Flutter项目执行gradlew signingReport获取SHA-1时的构建错误解决

错误信息(中文翻译)

FAILURE: Build failed with an exception.

* 出错原因:
配置根项目 'android' 时出现问题。
> 无法解析配置 ':classpath' 的所有文件。
   > 无法解析 com.google.gms:google-services:4.4.1。
     被以下项目依赖:
         project :
      > 未找到 com.google.gms:google-services:4.4.1 的匹配变体。消费者配置为寻找兼容Java 8的运行时库,打包为jar,依赖外部声明,同时要求属性 'org.gradle.plugin.api-version' 的值为 '7.5',但:
          - 变体 'apiElements' 的能力 com.google.gms:google-services:4.4.1 声明了一个库,打包为jar,依赖外部声明:
              - 不兼容:该组件声明了兼容Java 11的API,而消费者需要兼容Java 8的运行时
              - 其他兼容属性:
                  - 未提及 org.gradle.plugin.api-version (要求值为 '7.5')
          - 变体 'javadocElements' 的能力 com.google.gms:google-services:4.4.1 声明了一个运行时组件,依赖外部声明:
              - 不兼容:该组件声明为文档,而消费者需要库
              - 其他兼容属性:
                  - 未提及目标Java版本 (要求兼容Java 8)
                  - 未提及元素打包方式 (要求打包为jar)
                  - 未提及 org.gradle.plugin.api-version (要求值为 '7.5')
          - 变体 'runtimeElements' 的能力 com.google.gms:google-services:4.4.1 声明了一个运行时库,打包为jar,依赖外部声明:
              - 不兼容:该组件声明兼容Java 11,而消费者需要兼容Java 8
              - 其他兼容属性:
                  - 未提及 org.gradle.plugin.api-version (要求值为 '7.5')
          - 变体 'sourcesElements' 的能力 com.google.gms:google-services:4.4.1 声明了一个运行时组件,依赖外部声明:
              - 不兼容:该组件声明为文档,而消费者需要库
              - 其他兼容属性:
                  - 未提及目标Java版本 (要求兼容Java 8)
                  - 未提及元素打包方式 (要求打包为jar)
                  - 未提及 org.gradle.plugin.api-version (要求值为 '7.5')
   > 无法解析 com.android.tools.build:gradle:8.3.1。
     被以下项目依赖:
         project :
      > 未找到 com.android.tools.build:gradle:8.3.1 的匹配变体。消费者配置为寻找兼容Java 8的运行时库,打包为jar,依赖外部声明,同时要求属性 'org.gradle.plugin.api-version' 的值为 '7.5',但:
          - 变体 'apiElements' 的能力 com.android.tools.build:gradle:8.3.1 声明了一个库,打包为jar,依赖外部声明:
              - 不兼容:该组件声明了兼容Java 11的API,而消费者需要兼容Java 8的运行时
              - 其他兼容属性:
                  - 未提及 org.gradle.plugin.api-version (要求值为 '7.5')
          - 变体 'javadocElements' 的能力 com.android.tools.build:gradle:8.3.1 声明了一个运行时组件,依赖外部声明:
              - 不兼容:该组件声明为文档,而消费者需要库
              - 其他兼容属性:
                  - 未提及目标Java版本 (要求兼容Java 8)
                  - 未提及元素打包方式 (要求打包为jar)
4 actionable tasks: 4 up-to-date

问题核心

  1. 版本不匹配:Android Gradle插件(AGP)8.3.1要求Gradle版本至少为8.0,但当前项目使用Gradle 7.5,插件与Gradle版本不兼容。
  2. Java版本冲突:AGP 8.3.1和Google Services插件4.4.1均要求使用Java 11,但项目当前配置为Java 8,无法满足插件运行要求。

解决方案

1. 更新Gradle版本

修改gradle/wrapper/gradle-wrapper.properties文件中的distributionUrl,替换为AGP 8.3.1对应的Gradle版本(推荐8.4):

distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip

2. 调整项目Java版本为11

修改app/build.gradle中的编译配置:

android {
    // ... 其他原有配置
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }

    kotlinOptions {
        jvmTarget = '11'
    }
    // ... 其他原有配置
}

3. 兼容插件版本

调整android/build.gradle中的Kotlin版本,确保与AGP 8.3.1兼容:

buildscript {
    ext.kotlin_version = '1.9.20'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.4.1'
        classpath 'com.android.tools.build:gradle:8.3.1'
    }
}

4. 清理并重新构建

执行以下命令清理项目并重新生成依赖:

./gradlew clean
./gradlew signingReport

验证

执行./gradlew signingReport后,控制台会输出Debug和Release版本的SHA-1、SHA-256等密钥信息,复制对应SHA-1即可用于Firebase配置。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 05:45:00