Huu*_*yen 8 android flutter android-flavors
我使用 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"
}
}
}
Run Code Online (Sandbox Code Playgroud)
每次,我都会构建应用程序以使用终端发布:
flutter build apk --flavor uat -t lib/main-uat.dart
Run Code Online (Sandbox Code Playgroud)
文件 .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,问题解决了:
发布模式下如何解决问题?
这个错误似乎是由 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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
参考:https ://github.com/flutter/flutter/issues/44796#issuecomment-602278977