首页 > 解决方案 > 无法在 Flutter 中构建具有多种风格的发布 apk?

问题描述

我正在使用 Flutter(1.17.4 版)开发 Android 并配置multi Flavors运行多环境。

我的源代码有 3 个环境:(dev开发)、uat(QC)、prod(生产)。

Source: https://github.com/huubao2309/demo_multi_flavors

我的multiFlavors.gradle文件(/android/app/multiFlavors.gradle):

android {
    flavorDimensions "app"

    productFlavors {
      prod {
        dimension "app"
        applicationIdSuffix ".prod"
        versionNameSuffix "-prod"
      }
      dev {
        dimension "app"
        applicationIdSuffix ".dev"
        versionNameSuffix "-dev"
      }
      uat {
        dimension "app"
        applicationIdSuffix ".uat"
        versionNameSuffix "-uat"
      }
   }
}

每次,我都会构建应用程序以使用终端发布:

flutter build apk --flavor uat -t lib/main-uat.dart

文件 .apk 已创建,但终端抛出异常:

Gradle build failed to produce an .apk file. It's likely that this file was generated under D:\demo_multi_flavors\build, but the tool couldn't find it.

错误

我在模式下运行时也遇到了这个问题debug,但是在Android Studio(4.0版)上,我添加了 config build flavor,问题得到解决:

添加风味

如何解决发布模式的问题?

标签: androidflutterandroid-flavors

解决方案


这个错误似乎是由于 Flutter 正在寻找一个确切的.apk名称,但无法找到它。就我而言,正在生成的 .apk 的名称是app-release-unsigned.apk但必须是app-release.apk. 这是我的解决方案:

  buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        applicationVariants.all { variant ->
            variant.outputs.all {
                outputFileName = "app-${variant.getName()}.apk"
            }
        }
    }
}

参考:https ://github.com/flutter/flutter/issues/44796#issuecomment-602278977


推荐阅读