Flutter项目执行gradlew signingreport遇Groovy类型转换BUG求助
./gradlew signingreport时Groovy AST转换异常的解决方法 环境配置
- JDK 19
- Gradle 7.6
- Android Studio Flamingo 2022.2.1
- Flutter 3.10.2
错误信息
PS C:\Users\Republic-Of-Computer\amnir\android> ./gradlew signingreport
FAILURE: Build failed with an exception.
Where: Build file 'C:\Users\Republic-Of-Computer\amnir\android\build.gradle' line: 32
What went wrong: 评估根项目'android'时出现问题。
配置项目':app'时出现问题。
无法为构建文件'C:\Users\Republic-Of-Computer\amnir\android\app\build.gradle'打开cp_proj通用类缓存(C:\Users\Republic Of Computer.gradle\caches\7.6\scripts\4pdap60mfom4g0rgb39ojh57o)。
BUG! 在源单元'BuildScript'的'conversion'阶段发生异常:org.codehaus.groovy.ast.expr.TupleExpression类无法转换为org.codehaus.groovy.ast.expr.ArgumentListExpression类(org.codehaus.groovy.ast.expr.TupleExpression和org.codehaus.groovy.ast.expr.ArgumentListExpression位于加载器org.gradle.internal.classloader.VisitableURLClassLoader @182decdb的未命名模块中)
- Try:
使用--stacktrace选项获取堆栈跟踪。
使用--info或--debug选项获取更多日志输出。
使用--scan选项获取完整洞察。
相关文件内容
gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
根目录build.gradle
buildscript { ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:7.3.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // classpath "com.google.gms.google-services:4.3.15" classpath 'com.google.gms:google-services:4.3.15' } } allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
Flutter版本信息
Flutter 3.10.2 • channel stable • https://github.com/flutter/flutter.git Framework • revision 9cd3d0d9ff (6 weeks ago) • 2023-05-23 20:57:28 -0700 Engine • revision 90fa3ae28f Tools • Dart 3.0.2 • DevTools 2.23.1
解决方案
该异常由Gradle、Groovy、JDK三者版本不兼容导致,按以下步骤修复:
清理Gradle缓存
删除目录C:\Users\Republic Of Computer\.gradle\caches,清空后重新执行./gradlew signingreport。降级JDK版本
JDK 19与Gradle 7.6兼容性较差,建议降级到JDK 11或JDK 8(Android开发官方推荐的稳定版本),配置好环境变量后重启终端重试。匹配Gradle与Android Gradle Plugin版本
Gradle 7.6对应的Android Gradle Plugin(AGP)最低版本为7.4.0,当前使用的7.3.0版本不匹配。修改根目录build.gradle中的AGP版本:classpath 'com.android.tools.build:gradle:7.4.2'修正Groovy脚本语法
脚本中多余的转义双引号\"可直接替换为双引号,Groovy脚本中无需额外转义。同步Kotlin插件版本
将Kotlin版本升级至与AGP 7.4.x兼容的1.8.20:ext.kotlin_version = '1.8.20'
内容的提问来源于stack exchange,提问作者Muhammadoufi

