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'

构建失败 - flutter.gradle

升级 gradle 时,Flutter 项目无法构建。错误:类型“FlutterTask”属性“资产”缺少输入或输出注释[关闭]

Flutter 和 VSCode:Gradle 构建错误

在 Flutter 项目中更新 Gradle

Flutter 构建失败('无法读取包名')