【问题标题】:Flutter Android build output is wrongFlutter Android 构建输出错误
【发布时间】:2021-09-17 00:18:19
【问题描述】:

我有一个应用程序,我升级到使用 Flutter 2 构建。我仍然要做空安全的事情,但一步一步来。

当我进行构建(发布和调试)时,apkaab 将输出到错误的位置,并且(在 aab 的情况下)这会导致颤动在结束。

在此屏幕截图中,您将看到输出生成到 android/app/build 文件夹,这是不正确的

在构建apk 的情况下,它还会将其生成到build/app/outputs 文件夹,这更好但仍然不是100%,因为它应该是build/app/outputs/apk/nonprod/release/app-nonprod-release.apk

所以我的应用有两种风格 [ prod | nonprod ],我在发布和调试版本中为 aabapk 进行构建。

这也是 al 4 构建的输出(全部在 nonprod 风格上)

一些毕业信息

  • ext.kotlin_version = '1.5.10'
  • com.android.tools.build:gradle:4.1.0
  • 风味配置
    flavorDimensions "environment"

    productFlavors {
        prod {
            dimension "environment"
        }
        nonprod {
            dimension "environment"
            versionNameSuffix "-test"
            applicationIdSuffix ".test"
        }
    }

那么我该如何解决这个问题以将人工制品生成到正确的文件夹中

build/app/outputs/apk/{flavor}/{buildType}/app-{flavor}-{buildType}.apk

build/app/outputs/bundle/{flavor}{buildType}/app-{flavor}-{buildType}.aab

并且不会在 appbundle 上完全失败

提前谢谢你。

【问题讨论】:

  • 你为什么不尝试使用android模块。在 android studio 中打开 Android 字典并尝试构建 aab。
  • @rajkavadia。谢谢。但是在开发工作站上本地运行不是问题。这需要在 CI/CD 管道中构建

标签: android flutter build apk android-app-bundle


【解决方案1】:

所以在迁移到 Flutter 2 的过程中,我犯了一个错误。

android/build.gradle 中定义了subprojects 的地方,我尝试变得聪明,并将它们组合成一个subprojects 块。这导致了问题。

重要的是,如果您当前有两个单独的块,则将它们分开,就像这样

subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}

subprojects {
    project.evaluationDependsOn(':app')
}

当生成一个新的 Flutter 项目时,它实际上会生成一个单独的块。

subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
    project.evaluationDependsOn(':app')
}

不要尝试在旧版本中使用它。

感谢这个答案https://stackoverflow.com/a/63414006/2181352

【讨论】:

    猜你喜欢
    • 2021-11-21
    • 2023-01-23
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2020-04-24
    • 2020-03-10
    • 2015-11-21
    相关资源
    最近更新 更多