返回

如何为 Flutter APK 在 Android Studio 中构建特定环境 APK?

Android

如何为 Flutter APK 在 Android Studio 中构建特定环境 APK

问题

在 Android Studio 中,为一个带有不同环境(如开发、UAT)的 Flutter 项目构建 APK 时,可能无法设置构建目标。

解决方法

1. 修改 build.gradle 文件

android/app/build.gradle 文件中,添加以下代码:

buildTypes {
    debug {
        buildConfigField "String", "ENV", "\"dev\""
    }
    release {
        buildConfigField "String", "ENV", "\"uat\""
    }
}

这会创建构建配置字段 ENV,并根据构建类型(调试或发布)将其设置为 "dev" 或 "uat"。

2. 创建产品风味

android/app/build.gradle 文件中,添加以下代码:

productFlavors {
    dev {
        applicationIdSuffix ".dev"
        buildConfigField "String", "FLAVOR", "\"dev\""
    }
    uat {
        applicationIdSuffix ".uat"
        buildConfigField "String", "FLAVOR", "\"uat\""
    }
}

这会创建两个产品风味(dev 和 uat),每个风味都有自己的应用 ID 后缀和构建配置字段 FLAVOR

3. 使用 Gradle 构建

打开 Gradle 工具窗口View -> Tool Windows -> Gradle)。

4. 选择构建目标

Gradle 工具窗口 中,展开 app -> assemble 节点,你会看到两个构建目标:assembleDevassembleUat

5. 构建 APK

选择所需的构建目标(assembleDevassembleUat)并单击 Run 图标以构建 APK。

6. 找到构建的 APK

构建完成后,可在 android/app/build/outputs/apk 目录中找到构建的 APK。

示例代码

import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.embedding.engine.FlutterEngine;

public class MainActivity extends FlutterActivity {
  @Override
  public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
    GeneratedPluginRegistrant.registerWith(flutterEngine);
  }
}

常见问题解答

  1. 如何为其他环境构建 APK?
    添加更多构建类型或产品风味。
  2. 构建配置字段可以存储哪些值?
    任何需要的配置值,例如 API 密钥、URL 或版本号。
  3. 如何使用构建配置字段?
    在代码中通过 BuildConfig 类访问。
  4. 为什么我的构建失败?
    检查构建日志以了解错误。
  5. 在哪里可以找到更多信息?
    查看 Flutter 和 Android Studio 文档。