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

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.gradlebuildscript块,更新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.propertiesdistributionUrl):
    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

火山引擎 最新活动