avatar

mdo

Hello

  • 首页
  • 知识库
  • 归档
  • 标签
  • 关于
主页 flutter 打包apk -详细版flutter 打包成apk
文章

flutter 打包apk -详细版flutter 打包成apk

发表于 2025-09-13 更新于 2025-09- 13
作者 mdo
32~41 分钟 阅读

1.修改你的flutter app的启动图标

具体步骤如下:在.android 目录下面 **android/app/src/main/res/ ** 这个文件夹下面中存放着app的图标,下图所框选的文件夹中替换你想要的启动图标

>

去替换图标即可,图标名称要保持一致,并且要与之适配的分辨率

2.修改应用名称,在android文件夹下,android/app/src/AndroidManifest.xml 中

 <application

         android:label="one-app"   
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">

                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
    </application>

3.继续在android文件夹下面,找build.gradle ,是app下面的文件

第一处修改点: 找到这样一段代码前面

在此代码之前添加一段代码:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

修改完成,如下图所示:

第二处修改点:

将此代码整体替换为下面的代码块:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
    }
    buildTypes {
    release {
        signingConfig signingConfigs.release
    }
    }

4.在android文件夹下面新建一个文件,名称为:key.properties 用于存放生成app签名密钥的密钥口令和密钥存储文件位置信息

在此文件中添加以下信息

密码以及密钥存储位置都可以修改,根据自己需求来做!

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=D:/key.jks

5.这一步就快走到了打包的结尾,生成app签名密钥,

这里的D盘 可以修改为你想过要存储位置

keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

直接在终端输入这个命令,按回车,会出现如下内容:

这里我们输入之前自己设置即可,输入两次并成功之后,会出现让你填写如下图所示的等一系列信息。

输入完后按回车,密钥文件已生成,可在D盘进行查看。

6.最后一步打包,输入命令 flutter build apk

到这你的apk文件已经打包好啦!!!撒花✿✿ヽ(°▽°)ノ✿

7.打包完apk后,我们发现在整个app目录中多了一个文件夹,

寻找一下我们的apk包,在此文件夹下面

8.这个安装包可以尝试着安装到自己手机上或者模拟器上面,体验一下。

知识库
打包
许可协议:  CC BY 4.0
分享

相关文章

10月 7, 2026

比尔盖茨的智慧:想多赚钱,就每天循环做这3件事

我们总有一种非常固执的错觉,认为那些站在财富金字塔顶端的人,必然拥有某种超越常人的特异功能。我们在脑海中给比尔盖茨这样的大佬描绘了一幅极其悲壮的奋斗画像。大家总觉得,他之所以能富可敌国,肯定是因为他每天只睡三个小时,同时对着八个电脑屏幕疯狂敲击键盘,每一秒钟都在做出价值几亿美金的生死抉择。 为了模仿

9月 28, 2026

程序员越想创业,越不要急着动手

一个能源方面的前辈找到我,希望通过我把一些人工的工作 AI 自动化。 能源方面我不懂,找 Gemini 聊完发现这个是可以复制的,非常兴奋。我跟老婆说,这个项目做好以后可以做成平台,推广到其他公司,你就等着做总裁夫人吧! 她听完以后跟我说,这个项目还是太定制化,和我之前做的一个项目很像。 那个项目一

9月 25, 2026

忍了一年多,我终于对i18n下手了过去一年,我主要参与国际机票业务的开发工作,因此每天都要和多语言(i18n)打交道

前言 大家好,我是奈德丽。 过去一年,我主要参与国际机票业务的开发工作,因此每天都要和多语言(i18n)打交道。熟悉我的朋友都知道,我这个人比较“惜力”(并不是,实际上只是忍不下去了),对于重复笨拙的工作非常抵触,于是,我开始思考如何优化团队的多语言管理模式。 痛点背景 先说说我们在机票项目中遇到的

下一篇

FVM(FLutter Version Management)使用教程FVM

上一篇

解决方案之执行gradle报错

最近更新

  • 比尔盖茨的智慧:想多赚钱,就每天循环做这3件事
  • iOS 侧载(Sideloading)工具
  • 程序员越想创业,越不要急着动手
  • 注册 Chat Participant
  • 中秋给在外游子的一封信

热门标签

API CodeGeex Coding Cursor DeepSeek Docker Gitkraken Harness Laravel Management

目录

©2026 mdo. 保留部分权利。