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
问题核心
- 版本不匹配:Android Gradle插件(AGP)8.3.1要求Gradle版本至少为8.0,但当前项目使用Gradle 7.5,插件与Gradle版本不兼容。
- 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
相关产品推荐
相关产品推荐

