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

我们正在使用一些本机模块构建 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并手动安装它,我们还能做些什么吗?

经过几天的调试,我们决定在构建后将生成的 .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
}