Flutter 在 对接 google play 时,利用 android studio 可视化生成 已签名的aab包
android studio 可视化生成 aab包
第一 : 先说注意事项
-
在Flutter项目里面,直接打开当前项目是不行的,不显示相应操作,需要在Android 目录打开,直白点就是直接打开项目里面的Android 目录

-
不然会出现的一些问题
第一张图片
第二张图片
-
注意: 有的情况下显示上面第一张图片的操作,第二张的还是不显示,这个时候,你点击第一张图片的操作,意思是 ‘同步项目与Gradle 文件’,这样第二张图片的操作就会出现。
-
一般第一张图片操作展示,第二张操作不展示的时候,Android studio 会给相应的提示,如图

第二: 下面开始进入正题
-
在菜单栏中,选择 Build > Generate Signed Bundle / APK…

-
在弹出的对话框中,选择 Android App Bundle 或 APK,然后点击 Next

-
配置签名信息
- 选择密钥库:
-
如果已有密钥库,选择 Use existing keystore,并输入密钥库文件的路径(如下图)。

-
输入密钥库信息:
- Key store path: 选择你的密钥库文件路径。
- Key store password: 输入密钥库密码。
- Key alias: 输入密钥别名。
- Key password: 输入密钥密码。
- Validity (years): 输入密钥的有效年限(通常为 25 年)。
-
- 如果没有密钥库,可以选择 Create new… 来创建一个新的密钥库(如下图)。
-
Key store path:
- 输入要保存密钥库文件的位置和文件名(例如,C:\mykeystore.jks)。
-
Key store password:
- 输入密钥库的密码。确保密码足够复杂并且安全。
-
Key alias:
- 输入密钥的别名,用于识别这个密钥。比如可以用 myapp_key。
-
Key password:
- 输入密钥的密码。可以与密钥库密码相同,也可以不同,但建议保持不同以增加安全性。
-
Validity (years):
- 输入密钥的有效年限(通常设置为 25 年)。
-
Certificate information:
- 需要填写一些证书的基本信息,包括:
- First and Last Name: 输入你的名字和姓氏(例如,John Doe)。
- Organizational Unit: 输入你的组织单位名称(例如,Development)。
- Organization: 输入你的公司名称(例如,MyCompany)。
- City or Locality: 输入城市名称(例如,Beijing)。
- State or Province: 输入省或州名称(例如,Beijing)。
- Country Code: 输入国家代码(例如,CN)。
- 需要填写一些证书的基本信息,包括:
-
从有签名的逻辑,开始打包(签名的逻辑)
-
- 选择密钥库:
-
选择构建变体,配置生成选项
- 选择你要生成的构建变体(例如 release),然后点击 Create

- 配置生成选项
- 选择要包含的签名版本和是否进行代码混淆(如果需要)
- 选择你要生成的构建变体(例如 release),然后点击 Create
-
等待构建完成
- Android Studio 会开始生成签名的 AAB 或 APK。构建完成后,你可以在底部的 Build 窗口查看进度(一般在左下角,或者隐藏在工具栏中)。

- Android Studio 会开始生成签名的 AAB 或 APK。构建完成后,你可以在底部的 Build 窗口查看进度(一般在左下角,或者隐藏在工具栏中)。
-
找到生成的文件
- 生成的文件会保存在以下路径中:
- Android App Bundle:在第2 步的时候,看你选择创建 aab还是apk)
<YourProject>/app/build/outputs/bundle/release/app-release.aab - APK: (在第2 步的时候,看你选择创建 aab还是apk)
<YourProject>/app/build/outputs/apk/release/app-release.apk
- Android App Bundle:在第2 步的时候,看你选择创建 aab还是apk)
- 注意:生成文件的位置,可以自己选择,上面一般是默认的值,在第4步有标注
- 生成的文件会保存在以下路径中:
-
将生成的签名包上传到 Google Play 或在设备上进行测试
相关文章:
Flutter 在 对接 google play 时,利用 android studio 可视化生成 已签名的aab包
android studio 可视化生成 aab包 第一 : 先说注意事项 在Flutter项目里面,直接打开当前项目是不行的,不显示相应操作,需要在Android 目录打开,直白点就是直接打开项目里面的Android 目录 不然会出现的一些问题 第一…...
使用web.dev提供的工具实现浏览器消息推送服务
文章目录 前言实现工具和效果实现原理实现过程前端接收用户订阅请求将用户订阅信息更新到后端后端实现接收并保存订阅信息的接口后端实现消息推送的逻辑前言 对于电商独立站来说,新品上架或者促销活动上线及时通知到用户是很重要的,通知的渠道有很多,其中就包括浏览器消息推…...
计算机系统结构为什么用architecture 而不是structure?
architecture本意是建筑学、建筑艺术,其含义就是建筑的样子和背后的设计思想,用于计算机科学可以表达计算机的系统结构和后面的设计原理:它长什么样?它为什么长这样? 与architecture 对应的词是structure (…...
sqoop问题汇总记录
此篇博客仅记录在使用sqoop时遇到的各种问题。持续更新,有问题评论区一起探讨,写得有不足之处见谅。 Oracle_to_hive 1. main ERROR Could not register mbeans java.security.AccessControlException: access denied ("javax.management.MBeanTr…...
Git 创建新的分支但清空提交记录
有时候需要创建新的分支,但是原有分支的提交非常多,不好区分哪些是创建分支之后的提交。 那么就把原分支的提交全部去掉 要从 分支1 创建 分支2,并确保 分支2 不包含任何提交历史,同时文件与 分支1 的最后一次提交一致࿰…...
SQL PRIMARY KEY
SQL PRIMARY KEY 概述 在关系型数据库中,主键(PRIMARY KEY)是一个非常重要的概念。它是表中每一行数据的唯一标识符,用于保证数据的完整性和准确性。本文将详细介绍SQL中的主键,包括其定义、作用、如何创建和修改主键…...
软件测试学习笔记丨Flask操作数据库-对象与数据模型
本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23440 对象与数据模型 数据模型:是数据特征的抽象,抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架…...
IntelliJ IDEA使用 MybatisX-Generator 插件 自动生成Entity+Mapper+Mapper.xml等代码
一、Intellij安装MybatisX插件: 首先点击 Intellij->Preference->Plugins,然后搜索MybatisX,点击安装: 2 打开数据库 在IntelliJ IDEA 连接Mysql数据库,选择表,点击右键,选择 Mybatis…...
vue中如何为不同功能设置不同的默认打印设置(设置不同的打印机)
浏览器自带的window.print 功能较简单,这里使用LODOP露肚皮打印 以下是vue2示例: 从官网中下载Lodop和C-Lodop官网主站安装包并安装到本地电脑可以全局搜索电脑找到安装文件LodopFuncs.js,也可以直接复制我贴出来的文件 //用双端口加载主JS…...
经纬恒润INTEWORK-VBA新版本正式发布
在汽车电子研发领域,随着开发测试的深入,工程师们常常面临着一个共同的问题:如何高效地在多样化的开发测试场景中切换,并确保不同工具间的紧密协作。不同场景、不同工具的切换与使用给工程师带来高昂的学习成本和前后端信息传递的…...
金蝶云数据集成至MySQL的高效解决方案
金蝶云数据集成至MySQL的高效解决方案 金蝶云星空数据集成到MySQL的技术案例分享 在企业信息化过程中,数据的高效集成和管理是关键环节。本文将聚焦于一个具体的系统对接集成案例:金蝶云星空的数据如何通过轻易云数据集成平台无缝对接到MySQL数据库。本…...
Day02 C++ 环境设置
2024.11.1 C 环境设置 如果您想要设置 C 语言环境,需要确保电脑上有以下两款可用的软件,文本编辑器和 C 编译器。 一、文本编辑器 通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。 C 程序的源文件通常使用扩展名 .cpp、.cp 或…...
AQS是什么
AQS:AbstructQueuedSynchronizer是java.util.concurrent.locks包中的一个类,是多线程同步器,J.U.C包中的多个组件的底层实现都使用到了它。如:Lock、CountDownLatch、Semaphore. 从本质上来说AQS实现了两种机制的锁,排…...
Spring IOC容器简介
Spring IoC(Inversion of Control,控制反转)容器是Spring框架的核心组件之一,负责管理应用程序中的对象及其依赖关系。IoC容器通过依赖注入(Dependency Injection,DI)实现对象的创建、配置和管理…...
【backstopjs】入门安装环境
1.首先全局安装BackstopJS npm install -g backstopjs 安装失败,常见报错&解决办法: 报错: (venv) D:\workspace\Otaku\backstop>npm install -g backstopjs npm warn deprecated inflight1.0.6: This module is not supported, and leaks mem…...
LocalDate 类常用方法详解(日期时间类)
LocalDate 类常用方法详解 LocalDate 是 Java 8 引入的日期时间API中的一个类,用于表示不含时间和时区的日期(年、月、日)。以下是一些常用的 LocalDate 方法: 创建 LocalDate 实例 now():获取当前日期 LocalDate t…...
kmp desktop实现excel预览
先将excel转paf https://blog.csdn.net/qq_42761569/article/details/121699594 package utilimport com.aspose.cells.License import com.aspose.cells.PdfSaveOptions import com.aspose.cells.Workbook import com.geolo.desktop.common.utils.LogUtils import java.io.Fi…...
OB_GINS_day3
这里写目录标题 实现当前状态初始化实现预积分的初始化由于此时preintegration_options 是3(也就是考虑odo以及earth rotation)为预积分的容器添加需要积分的IMU积分因子接下来是添加新的IMU到preintegration中 实现当前状态初始化 这个state_curr的主要…...
【Python3】【力扣题】405. 数字转换为十六进制数
【力扣题】题目描述: 题意理解:(不允许使用库函数) 数字等于0,则结果为0, 数字小于0,则补码运算,即最高位(32位)为1,其余全部取反,再加…...
记录一次企业外部通过ssh 连接数据库的事DBeaver
情况大概是这样,公司算法供应商开通了连接某个服务器A的权限,但是数据库x是在另一台服务器B上。 直接通过外部连接数据库是不行的,需要借用服务器A来进行访问x 使用软件:DBeaver, 数据库x类型:oracle 需要的信息&am…...
如何在5分钟内快速安装Homebridge Config UI X
如何在5分钟内快速安装Homebridge Config UI X 【免费下载链接】homebridge-config-ui-x The Homebridge UI. Monitor, configure and backup Homebridge from a browser. 项目地址: https://gitcode.com/gh_mirrors/ho/homebridge-config-ui-x Homebridge Config UI X …...
Qwen3.5-9B-AWQ-4bit部署教程:双卡RTX 4090 D显存优化与AWQ量化优势解析
Qwen3.5-9B-AWQ-4bit部署教程:双卡RTX 4090 D显存优化与AWQ量化优势解析 1. 模型概述 Qwen3.5-9B-AWQ-4bit是一个支持图像理解的多模态模型,能够结合上传图片与文字提示词,输出中文分析结果。这个模型特别适合处理以下任务: 图…...
城市峡谷里,你的车是怎么知道自己在哪的?聊聊INS、NHC和轮速计(ODO)的“组合拳”
城市峡谷里,你的车是怎么知道自己在哪的?聊聊INS、NHC和轮速计(ODO)的“组合拳” 想象一下,你正驾驶车辆穿梭在纽约曼哈顿的摩天大楼之间,或是穿越一条漫长的山体隧道。突然,车载导航屏幕上的定…...
如何在不同的机器上运行多个OpenClaw实例?
想让不同机器上的 OpenClaw 一起协作,其实就是搭建一个跨机器的 “小龙虾通信网络”。实现方式分两种:简单直连(适合测试 / 小集群)和远程网关(适合生产 / 稳定协作)。下面给你一套直接能跑的完整方案。一、…...
SpringBoot + Ollama + Qdrant + DeepSeek:从零构建企业级本地知识库问答系统
1. 为什么选择这套技术栈? 在企业内部搭建知识库问答系统时,技术选型需要平衡性能、成本和易用性。这套组合拳的巧妙之处在于:SpringBoot提供企业级开发框架,Ollama让大模型本地化运行成为可能,Qdrant解决向量检索的效…...
RoPE → Attention 完整
好的,我帮你把之前的 “Transformer 输入 → RoPE → Attention” 全流程整理成一个完整的、连贯的文档。每一步都包含 数学表达 PyTorch 示例代码,方便直接参考或实现。Transformer 前向 RoPE 全流程1️⃣ 输入:Token → Embedding 数学表…...
Python入门:轻松掌握输入输出与数据类型,2025年ASOC SCI2区TOP,基于动态模糊系统的改进灰狼算法FGWO,深度解析+性能实测。
Python 入门:输入输出与数据类型详解 输入与输出基础 Python 的输入输出是程序与用户交互的基础。input() 函数用于接收用户输入,默认返回字符串类型。例如: user_input input("请输入内容:") print("你输入的内容…...
【数据结构】线索二叉树之中序遍历线索化详解与实现
在二叉树的遍历过程中,我们会发现大量的空指针域被浪费,而线索二叉树的核心思想就是利用这些空指针,将其指向节点的前驱或后继节点,从而实现二叉树的非递归遍历无需借助栈,提升遍历效率。本文将详细讲解中序遍历线索化…...
模拟开关原理与应用全解析
1. 模拟开关的本质与应用场景模拟开关这个器件,在电路设计中扮演着"交通警察"的角色。想象一下城市道路上的红绿灯——它不会改变车辆本身,只是控制着车流的通断和方向。模拟开关的工作原理与之类似,它专门用于控制模拟信号的路径选…...
Go语言的网络编程:从TCP到WebSocket
Go语言的网络编程:从TCP到WebSocket 网络编程的重要性 在现代软件开发中,网络编程是一项基本技能。通过网络编程,我们可以: 构建客户端-服务器应用程序实现分布式系统开发 Web 应用和 API实现实时通信功能与其他服务进行集成 Go 语…...
