Flutter:Gradle 构建未能生成 .apk 文件。很可能这个文件是在<app_root>\build下生成的,但是工具找不到

oet*_*oni 48 android gradle apk dart flutter

我正在尝试试驾一个应用程序。由于应用程序无法调试/运行,我一直遇到这个问题的奇怪问题。SDK 版本为 28,其余版本如下:

Flutter 1.13.9-pre.79 • channel master • https://github.com/flutter/flutter.git
Framework • revision 9eb9ea0ffa (6 hours ago) • 2020-01-13 21:30:42 -0800
Engine • revision 0235a50843
Tools • Dart 2.8.0 (build 2.8.0-dev.0.0 28c335d5a2)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Gradle 构建未能生成 .apk 文件。这个文件很可能是在 C:\Development\\build 下生成的,但工具找不到它。

有没有办法通过向 Gradle 提供或提供输出路径来传递这个问题或允许我运行的配置?.apk 似乎是在错误状态下生成的。

在此处输入图片说明

更新:

Android Studio -v 3.5.3 
Gradle -v 3.4.2 
Gradle Wrapper -v 5.1.1
Run Code Online (Sandbox Code Playgroud)

Erf*_*tfi 52

就我而言,我有一个像这样的多口味应用程序:

2021 年 4 月 15 日更新:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
            {
                    "name": "YOUR_PROJECT_NAME",
                    "program": "lib/main.dart",
                    "request": "launch",
                    "type": "dart",
                    "args": [
                            "--flavor",
                            "ADD_YOUR_FLAVOR_NAME_HERE" //development or staging or production
                        ]
            }
    ]
Run Code Online (Sandbox Code Playgroud)

其它的办法:

 android {

    ...

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }

    flavorDimensions "flavor-type"

    productFlavors{
        development{
            dimension "flavor-type"
        }
        staging{
            dimension "flavor-type"
        }
        production{
            dimension "flavor-type"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,如果您想运行应用程序,您必须编写风味名称,然后编写包含 main() 函数的类名称

flutter run --flavor staging -t lib/main_staging.dart
Run Code Online (Sandbox Code Playgroud)

我解决了我的错误并构建了 .apk

  • 需要在哪个文件中添加配置? (4认同)

MUH*_*C P 20

确认android/app/build.gradle没有flavor相关问题后,请运行命令

flutter run --flavor dev lib/main_dev.dart 
Run Code Online (Sandbox Code Playgroud)

代替

flutter run lib/main_dev.dart --flavor dev 
Run Code Online (Sandbox Code Playgroud)


Far*_*rwa 16

Build namefrom 中添加了风味名称Edit Configurations,它起作用了! 在此处输入图片说明


Jer*_*hou 12

好吧,我发现它argslaunch.json,如果你使用vscode

在此处输入图片说明


Nav*_*mar 10

这对我有用,

flutter run --flavor dev lib/main.dart
Run Code Online (Sandbox Code Playgroud)


Geo*_*izy 8

就我而言,是debuggable falseAndroid 应用程序中的设置build.gradle导致了此问题。我同意没有很多人会修改debuggable配置,但有一天它可能会帮助某人参考这一点。

 buildTypes {
    debug {
        debuggable false <= causing problem
        ...
    }
Run Code Online (Sandbox Code Playgroud)


小智 7

在 buildTypes 之后的 App 标签 build.gradle 文件中添加以下代码:

flavorDimensions "flavor"

productFlavors {
    staging {
        dimension "flavor"
    }
}
Run Code Online (Sandbox Code Playgroud)

并修改您的编辑配置,如下图所示: 在此处输入图片说明


Mah*_*esh 5

有时,当您在 build.gradle 文件中提到以下代码时,会发生此问题。评论此代码并尝试运行构建,它对我来说成功了。如果您想构建多个 apk 文件,请在发布构建时使用它们,并在调试构建时将其删除。从您分享的屏幕截图中,我可以看到为您生成了多个 apk,并且评论拆分 apk 将帮助您修复它。

splits {
    abi {
        enable true
        reset()
        include 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        universalApk true
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 5

我通过禁用 split 解决了我的问题

splits {

    abi {

        enable false

    }
}
Run Code Online (Sandbox Code Playgroud)