Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到
Posted
技术标签:
【中文标题】Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到【英文标题】:Flutter: Gradle build failed to produce an .apk file. It's likely that this file was generated under *** but the tool couldn't find it 【发布时间】:2021-12-08 22:32:57 【问题描述】:我们正在使用一些原生模块构建 Flutter 应用程序。过去我们使用 Flutter 作为一些跨平台部署的模块,但最终我们决定先使用 Flutter。
在我们遇到此错误之前,一切似乎都按预期工作:
Gradle 构建无法生成 .apk 文件。这个文件很可能是在 C:\Users\user\folder\project\flutter_modules\build 下生成的,但是工具找不到。
在 C:\Users\user\folder\project\flutter_modules\build\app\outputs\apk\debug 下生成了一个可用的 apk,但我们找不到设置 gradle 的方法来查找它。
我们尝试了许多推荐的修复方法,例如指定应用风格、添加拆分、更新 Flutter 和 gradle,但没有任何效果。我们有什么遗漏的吗?
有没有办法指定gradle应该在哪个文件夹中搜索生成的apk?
我们知道,如果我们运行flutter run --use-application-binary flutter_modules/build/outputs/apk/debug/app-debug.apk
,它会安装它,但在安装之前不会构建它。
但我们无法通过使用flutter run
或在android Atudio 中按运行来构建和安装它。
有没有人遇到过同样的情况?除了构建它,让它找不到apk并手动安装它之外,我们还能做些什么吗?
【问题讨论】:
【参考方案1】:经过几天的调试,我们决定在构建后将生成的 .apk 移到构建系统期望的位置。换句话说,我们将此添加到应用级 build.gradle。
applicationVariants.all variant ->
variant.assemble.doLast
copy
from '../../build/app/outputs/apk/debug/app-debug.apk'
into '../../build/host/outputs/apk'
还要确保这个在项目级 build.gradle 中。
rootProject.buildDir = '../build'
subprojects
project.buildDir = "$rootProject.buildDir/$project.name"
project.evaluationDependsOn(':app')
task clean(type: Delete)
delete rootProject.buildDir
【讨论】:
以上是关于Flutter:Gradle 构建无法生成 .apk 文件。这个文件很可能是在***下生成的,但是工具找不到的主要内容,如果未能解决你的问题,请参考以下文章
构建 appbundle 时出现颤振错误(脚本'/Users/****/Developer/flutter/packages/flutter_tools/gradle/flutter.gradle'
升级 gradle 时,Flutter 项目无法构建。错误:类型“FlutterTask”属性“资产”缺少输入或输出注释[关闭]