Flutter Android 构建输出错误
Flutter Android build output is wrong
我有一个升级为使用 Flutter 2 构建的应用程序。我仍然要做 null-safety 的事情,但一次一个步骤。
当我构建(发布和调试)时,apk
和 aab
将输出输出到错误的位置并且(在 aab
的情况下) 这会导致 flutter 在最后呕吐。
在此屏幕截图中,您将看到输出生成到 android/app/build
文件夹,这是不正确的
在构建 apk
的情况下,它还会将其生成到 build/app/outputs
文件夹中,这更好,但仍然不是 100%,因为它应该是 build/app/outputs/apk/nonprod/release/app-nonprod-release.apk
所以我的应用有两种风格 [prod | nonprod ],我在发布和调试版本上为 aab
和 apk
构建。
这里也是 al 4 构建的输出(都是 nonprod
风格)
一些gradle信息
- 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 上完全失败
提前致谢。
因此,作为我迁移到 Flutter 2 的一部分,我犯了一个错误。
在 android/build.gradle
中定义了 subprojects
我试着聪明地将它们组合成一个 subprojects
块。这导致了问题。
重要的是,如果您当前有两个单独的块,请将它们分开,就像这样
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
生成新的flutter项目时,实际上是用一个block生成的。
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
不要尝试在旧版本中使用它。
归功于此答案
我有一个升级为使用 Flutter 2 构建的应用程序。我仍然要做 null-safety 的事情,但一次一个步骤。
当我构建(发布和调试)时,apk
和 aab
将输出输出到错误的位置并且(在 aab
的情况下) 这会导致 flutter 在最后呕吐。
在此屏幕截图中,您将看到输出生成到 android/app/build
文件夹,这是不正确的
在构建 apk
的情况下,它还会将其生成到 build/app/outputs
文件夹中,这更好,但仍然不是 100%,因为它应该是 build/app/outputs/apk/nonprod/release/app-nonprod-release.apk
所以我的应用有两种风格 [prod | nonprod ],我在发布和调试版本上为 aab
和 apk
构建。
这里也是 al 4 构建的输出(都是 nonprod
风格)
一些gradle信息
- 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 上完全失败
提前致谢。
因此,作为我迁移到 Flutter 2 的一部分,我犯了一个错误。
在 android/build.gradle
中定义了 subprojects
我试着聪明地将它们组合成一个 subprojects
块。这导致了问题。
重要的是,如果您当前有两个单独的块,请将它们分开,就像这样
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
生成新的flutter项目时,实际上是用一个block生成的。
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
不要尝试在旧版本中使用它。
归功于此答案