flutter 打包安卓apk 常用配置

打包之前需要先不配置不然会报错 Execution failed for task ‘:app:mergeReleaseResources’.

APP目录下的build.gradleaaptOptions.cruncherEnabled = falseaaptOptions.useNewCruncher = false

如图

配置targetSdkVersion 、minSdkVersion

在android/app/src目录下的build.gradle配置
在这两个地方配置就可以 比如安卓应用商店是安卓targetSdkVersion api 30defaultConfig {applicationId "com.example.tianxi_user"minSdkVersion flutter.minSdkVersion //最低兼容的安卓版本,flutter中默认是16targetSdkVersion flutter.targetSdkVersion //应用适配的安卓版本 flutter中默认是33versionCode flutterVersionCode.toInteger()versionName flutterVersionNamendk {//设置支持的SO库架构(开发者可以根据需要,选择一个或多个平台的so)abiFilters "armeabi", "armeabi-v7a", "arm64-v8a", "x86","x86_64"// biFilters "armeabi", "armeabi-v7a", "arm64-v8a","x86","x86_64"}}

或者去flutter安装目录中去配置 一劳永逸

flutter\packages\flutter_tools\gradle
flutter.gradle 修改这里的配置class FlutterExtension {/** Sets the compileSdkVersion used by default in Flutter app projects. */static int compileSdkVersion = 33/** Sets the minSdkVersion used by default in Flutter app projects. */static int minSdkVersion = 16/** Sets the targetSdkVersion used by default in Flutter app projects. */static int targetSdkVersion = 33/*** Sets the ndkVersion used by default in Flutter app projects.* Chosen as default version of the AGP version below as found in* https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp*/static String ndkVersion = "23.1.7779620"/*** Specifies the relative directory to the Flutter project directory.* In an app project, this is ../.. since the app's build.gradle is under android/app.*/String source/** Allows to override the target file. Otherwise, the target is lib/main.dart. */String target
}

使用自定义证书签名打包

使用 keytool 生成签名证书,placement certificate
keytool -genkey -v -keystore xxx(项目名).keystore -alias xxx(项目名) -keyalg RSA -keysize 2048 -validity 10000 -storepass (storePassword密码) -keypass (keyPassword密码)根据提示生成证书keystore
  • 将 text.keystore 文件放到 android/app/ 目录下。
  • 编辑 android/app/build.gradle,添加 signingConfigs:
android {...signingConfigs {release {keyAlias 'text'keyPassword '***' storeFile file('text.keystore ')storePassword '***'}}buildTypes {...release {signingConfig signingConfigs.release}}
}

填入 keystore 的密码。

最后使用 flutter build apk --release 进行签名打包。

只打包32/64

现在很多安卓应用商店只支持64位 安卓api30以上的。这里要调整下
只支持64位:flutter build apk --target-platform android-arm64

支持32位:flutter build apk --target-platform=android-arm
同时支持64位和32位:flutter build apk

报错Could not create task ':flutter_plugin_android_lifecycle:generateDebugUnitTestConfig

在Android Studio中 打开安卓目录
修改文件,把下面代码注释,在flutter中运行的时候放开subprojects {
//    // 把这行注释掉,在flutter运行的时候,记得取消这行的注释
//    project.buildDir = "${rootProject.buildDir}/${project.name}"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345399.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信商家转账到零钱,既能单笔又能批量,支持多商户管理

大家好,我是小悟 微信商家转账到零钱的功能大家应该都熟悉吧,为了满足商家向用户微信零钱转账的需求,微信支付推出【商家转账到零钱】服务,方便商户可以一次向单个或多个用户的微信零钱转账。 商家转账到零钱为商户提供了简便、…

小学生练字神器,在线字帖生成器网站源码

源码介绍 帮助小学生规范汉字书写,提高汉字书写水平,在线小学生练字神器!它不仅功能强大,而且完全免费,是每个小学生必备的练字工具。 海量字库:收录9574个常用汉字,满足小学生的学习需求。多…

分布式系统架构设计之分布式消息队列的实际应用场景分析以及未来展望

一、分布式消息队列的实际应用场景 随着企业业务的不断发展和数据量的持续增长,分布式消息队列已经成为了许多系统中不可或缺的一部分。它提供了异步通信、流量削峰、数据缓冲等功能,为构建高并发、高可用、可扩展的系统提供了有力的支持。本部分会通过…

MySQL8.0安装(Linux - centos)

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 其他…

文件操作(一)

目录 一.什么是文件 1.程序文件和数据文件 2.文件名 3,文本文件和二进制文件 二.文件的打开和关闭 1.流和标准流 2.文件指针 3.文件的打开与关闭 三.结尾 一.什么是文件 在我们学习文件操作之前我们先了解一下什么是文件?以及文件为什么使用文件…

高级RAG(六): 句子-窗口检索

之前我们介绍了LlamaIndex的从小到大的检索 的检索方法,今天我们再来介绍llamaindex的另外一种高级检索方法: 句子-窗口检索(Sentence Window Retrieval),在开始介绍之前让我们先回顾一下基本的RAG检索的流程,如下图所示: 在执行基…

BikeDNA(九) 特征匹配

BikeDNA(九) 特征匹配 特征匹配采用参考数据并尝试识别 OSM 数据集中的相应特征。 特征匹配是比较单个特征而不是研究区域网格单元水平上的特征特征的必要前提。 方法 将两个道路数据集中的特征与其数字化特征的方式以及边缘之间潜在的一对多关系进行…

Rust-语句和表达式

if-else Rust中if-else表达式的作用是实现条件分支。if-else表达式的构成方式为:以if关键字开头,后面跟上条件表达式,后续是结果语句块,最后是可选的else块。条件表达式的类型必须是bool。 if-else结构还可以当表达式使用 loop …

如何一键添加引号和英文逗号,然后可以放入SQL中使用 → WHERE USER_NAME IN (‘张三‘,‘李四‘,‘王五‘)

如何一键添加引号和英文逗号,然后可以放入SQL中使用 → WHERE USER_NAME IN(张三,李四,王五) 一、背景二、解决方法三、一键添加引号和英文逗号的教程 一、背景 在日常开发中,当处理VARCHAR或VARCHAR2类型的字段时,很…

【python】——turtle动态画

🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL&#xff1a…

学习JavaEE的日子 day12 构造方法 类的制作

Day12 需求:创建人类的对象,并操作对象 分析: 人类 - Person 属性:name、sex、age 方法:eat、sleep 场景:创建多个对象,去操作对象 //测试类:该类中有main方法,测试我们写…

AI的力量:微软超越苹果,成为全球最有价值公司

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…