使用Flutter构建Android应用失败:Execution failed for task ':app:compressDebugAssets'.
问题描述
本人为Flutter和Gradle小白。尝试使用Android Studio创建一个Flutter App,将手机连接到电脑,没有对初始代码和文件结构进行任何修改,点击Run main.dart,在执行到assembleDebug
时出现报错。尝试过在Stack Flow寻找解决方案,无果。请求大佬帮助,不胜感激。
报错代码
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:compressDebugAssets'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CompressAssetsWorkAction
> E:\JavaDev\flutter_app\build\app\intermediates\merged_assets\debug\out
* 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 38s
Exception: Gradle task assembleDebug failed with exit code 1
报错截图
问题出现的平台版本
使用系统为Windows 10 20H2
Flutter版本为2.0.1 stable channel
Dart版本为2.12.0
JAVA\_HOME为AdoptOpenJDK\jdk-8.0.265.01-hotspot
尝试过在Intellij Idea和vscode运行过项目,也不成功。
Android Studio的插件版本信息:
Flutter插件版本为54.0.1
Dart插件版本为201.9335
Gradle插件版本为bundled 201.8743.12.41.7042882
- -
在Stack Flow看到有评论说若使用出现这个错误的Flutter和Dart工具编译之前创建的Flutter项目可以编译成功,但是若编译新建立的Flutter项目就会显示该报错。遗憾的是,该问题没有有效的回答,所以真诚请求各位大佬的帮助!
已经找到解决方法了,虽然可能并不是最好的也不是最官方的解决方法。
解决方法来自以下视频:
How to fix this error ' specified for property 'mainMergedManifest' does not exist” | Android | 2020
适用于所有遇到本报错信息的开发者,不仅限于Flutter开发者,也适用于Java和Kotlin或其他使用Gradle工具的开发者。
首先,将
build.gradle中classpath 'com.android.tools.build:gradle:4.X.X'
更改为classpath 'com.android.tools.build:gradle:4.0.2'
其次,将gradle-wrapper.properties文件中的
distributionUrl=https://services.gradle.org/distributions/gradle-6.X.X-all.zip
更改为distributionUrl=https://services.gradle.org/distributions/gradle-6.4.1-all.zip
再进行编译,一般就不会出现这个问题了。
注意,以上两个文件都是包含在工程中,并不是全局的,所以每新建一个工程都需要修改这两个文件,或者等待官方解决这个问题。