有没有办法在Android Studio中为Flitter构建apk?

I have seen this guideline: https://flutter.dev/docs/deployment/android
But here flutter console is used to build apk.

推荐答案

您可以使用IDE和命令行构建APK/AppBundle.

  • 通过IDE构建APK/AppBundle:

    第一步

    在Android Studio的选项卡栏中,依次单击ToolsFlutterOpen Android module in Android Studio:

    enter image description here

    第二步

    在新窗口中打开项目:

    enter image description here

    第3步

    打开项目后,单击Build,然后单击Generate Signed Bundle / APK ...

    enter image description here


  • 通过命令构建APK/AppBundle:

    第一步:

    修改您的build.gradle(app)文件,并在其中包含您的关键信息:

    android {
        compileSdkVersion 31
        signingConfigs {
            release {
                storeFile file("<path-to-keys.jks>")
                storePassword "********"
                keyAlias "<key-alias>"
                keyPassword "********"
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    

    第二步:

    Build AppBundle:

    flutter build appbundle --target-platform android-arm,android-arm64,android-x64 --obfuscate --split-debug-info=/<directory>
    

    Build APK:

    flutter build apk --target-platform android-arm,android-arm64,android-x64 --split-per-abi --obfuscate --split-debug-info=/<directory>
    

Flutter相关问答推荐

允许冻结在初始化时使用工厂

SupabaseFlutter 集成问题:无法更新行

如何在Flutter 中不从getX库中初始化GetxController中的变量

Flutter 中的多页表现

当键盘在抖动中打开时,如何才能看到包装在SingleChildScrollView中的列中的最后一个小工具?

在Flutter 中更改扩展瓷砖的高度

为什么Spotify Auth API返回400,而";code_verier不正确?

Flutter如何将2个以上的值传递到ListView上的另一个屏幕?

尽管海拔设置为 0,如何删除 appBar 下的下划线

没有为类型 'Widget' 定义运算符 '[]' .try 定义运算符[]

如何从flutter连接PostgreSQL数据库?

Flutter:使用 GlobalKey 访问 BlocProvider

创建混合 TextWidget 和 TextFieldWidget

Firestore 使用 Flutter 以奇怪的格式保存数据

输入处于活动状态时如何设置文本字段标签的样式?

Freezed+BLoc 如何从 BLoc Listener 查看当前状态和特定状态的变量

为什么轮播加载图片很慢?

更新未知文档 ID firebase\flutter 中的字段

我已经删除了我的 .android 密钥库,但我没有使用它,如何生成一个新的?

设计响应式卡片的最佳方法,以避免像素溢出错误或 _AssertionError