Android Studio构建Thingsboard APK时出现Gradle任务创建失败错误
Android Studio构建Thingsboard APK时出现Gradle任务创建失败错误
问题描述
我在构建ThingsBoard Flutter应用的APK时遇到了以下错误:
C:\Dev\thingsboard_app\flutter_thingsboard_app\lib\flutter\bin\flutter.bat --no-color build apk Running Gradle task 'assembleRelease'... FAILURE: Build completed with 2 failures. 1: Task failed with an exception. ----------- * Where: Build file 'C:\flutter_thingsboard_app\android\build.gradle' line: 13 * What went wrong: A problem occurred evaluating root project 'android'. > A problem occurred configuring project ':app'. > Could not create task ':app:copyFlutterAssetsRelease'. > Could not create task ':app:mergeReleaseAssets'. > Cannot use @TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. ============================================================================== 2: Task failed with an exception. ----------- * Where: Build file 'C:\flutter_thingsboard_app\android\build.gradle' line: 13 * What went wrong: A problem occurred evaluating root project 'android'. > A problem occurred configuring project ':app'. > Could not create task ':app:copyFlutterAssetsRelease'. > Could not create task ':app:mergeReleaseAssets'. > Cannot use @TaskAction annotation on method IncrementalTask.taskAction$gradle_core() because interface org.gradle.api.tasks.incremental.IncrementalTaskInputs is not a valid parameter to an action method. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. ============================================================================== BUILD FAILED in 1m 50s Running Gradle task 'assembleRelease'... 112.0s Gradle task assembleRelease failed with exit code 1
我的Java版本:
PS C:\flutter_thingsboard_app> java --version openjdk 17.0.13 2024-10-15 OpenJDK Runtime Environment Temurin-17.0.13+11 (build 17.0.13+11) OpenJDK 64-Bit Server VM Temurin-17.0.13+11 (build 17.0.13+11, mixed mode, sharing)
android/build.gradle内容:
allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } tasks.register("clean", Delete) { delete rootProject.buildDir }
gradle-wrapper.properties内容:
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
我已经尝试根据Gradle兼容列表调整Java和Gradle版本,但问题依然存在。
解决方案
这个错误本质是Gradle、Android Gradle插件(AGP)和Flutter版本之间的API兼容性问题,结合你的配置,推荐以下几个排查和修复步骤:
1. 匹配Android Gradle插件(AGP)与Gradle版本
Gradle 8.6需要搭配AGP 8.2.0或更高版本(你的build.gradle未显示AGP版本,大概率是版本不匹配)。打开android/build.gradle的buildscript块,更新AGP版本:
buildscript { ext.kotlin_version = '1.9.0' // 确保Kotlin版本也兼容 repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:8.2.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
2. 替换已废弃的JCenter仓库
JCenter已停止维护,继续使用可能引发依赖下载异常或兼容性问题,把allprojects里的jcenter()替换成mavenCentral():
allprojects { repositories { google() mavenCentral() // 替换jcenter() } }
3. 调整Flutter与Gradle的版本适配
部分旧版Flutter对高版本Gradle支持不完善,你可以:
- 先查看当前Flutter版本:
flutter --version - 如果Flutter版本低于3.16,建议暂时降级Gradle到8.0版本(修改
gradle-wrapper.properties的distributionUrl):distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip - 如果是新版Flutter,建议升级到最新稳定版后再尝试构建。
4. 清理缓存并重新构建
缓存残留常导致奇怪的兼容性问题,执行以下步骤彻底清理:
- 运行
flutter clean清理Flutter项目缓存 - 删除
android/.gradle文件夹(Android项目的Gradle缓存) - 重启Android Studio,然后执行
flutter build apk --release
5. 尝试切换Java版本
虽然Java 17和Gradle 8.6兼容,但部分旧插件对Java 17的支持可能存在问题,你可以暂时切换到Java 11:
- 在Android Studio中打开
File > Project Structure > SDK Location - 把
JDK location设置为Java 11的安装路径
如果以上步骤都无法解决,建议运行flutter build apk --release --stacktrace,获取更详细的错误堆栈信息,这样能更精准定位到具体是哪个插件或依赖导致的API不兼容问题。
备注:内容来源于stack exchange,提问作者Chris Leung




