AndroidStudio中Flutter打包APK
1、生成签名文件
在打包之前我们需要一个签名文件,证明文件的唯一性。
keytool -genkey -v -keystore F:\APP\sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
F:\APP\sign.jks为签名问价存放目录,sign 为密钥名。
后面都有用,请牢记。
在控制台输入上方指令后,会依次让你输入密钥库口令、姓氏、组织机构等等,下方是我的截图:

查看证书SHA1:
keytool -list -v -keystore F:\APP\sign.jks -alias sign -storepass 123456 -keypass 123456
其中 sign、storepass、keypass 分别为: 别名、密钥库密码、 sign文件密码
2、Android Studio 配置
2.1、导入sign.jks
在Flutter工程中/android/app/key/sign.jks创建该目录。
要在app目录下创建key文件夹,然后把sign.jks拖进来。
如图所示:

2.2、创建key.properites
在Flutter工程中/android/key.properites创建该文件。
里面内容如下:
storePassword=123456
keyPassword=123456
keyAlias=sign
storeFile=key/sign.jks
2.3、配置/android/app/build.gradle文件
需要修改 app 包下的 build.gradle 文件,增加如下配置:
android {
signingConfigs {
release {
keyAlias 'sign'
keyPassword 'android'
storeFile file('key/sign.jks')
storePassword 'android'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
完整的代码:
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdkVersion 28
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
applicationId "sscai.club.flutter_shop"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
/*针对打包新加的*/
signingConfigs {
release {
keyAlias 'sign'
keyPassword '123456'
storeFile file('key/sign.jks')
storePassword '123456'
}
}
/*针对打包新加的*/
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
flutter {
source '../..'
}
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
项目目录:

3、打包APK
在当前项目目录的终端中执行:flutter build apk
或者直接在 Android Studio 的 Terinal 执行命令:

生成的目录:当前项目\build\app\outputs\apk\release\xx.apk
AndroidStudio中Flutter打包APK的更多相关文章
- 从零学习Fluter(七):Flutter打包apk详解
写一个win上 flutter 打包apk的教程 这篇文档介绍一下flutter打包发布正式版apk 整体来看,和命令行打包rn的方法相差不大 打包前先做检查工作&查看构建配置 Android ...
- flutter 打包apk
打包的具体操作,可以参照官网,只是官网没有那么细 1.修改AndroidManifest.xml 2.构建配置 可以跳过 3.构建签名 4.创建 key.properties 5.配置混淆 6.修改 ...
- MacOS系統Flutter打包apk
一.打包前需要做一些基本设置的确认 1.应用名 2.权限设置 3.applicationId:应用唯一标识符 4.versionCode:版本号 5.versionName:版本名称 6.APP应用图 ...
- flutter 打包apk之后,安装在手机上无法访问网络解决方法
</application> <uses-permission android:name="android.permission.READ_PHONE_STATE" ...
- Flutter打包release版本安卓apk包真机安装无法请求网络的解决方法
今天flutter build apk打包了一个release.apk包,在真机上安装后网络数据都不显示,但是在模拟器上没问题,然后又连接真机开debug各种测试,一切都正常!那这会是什么问题呢? 查 ...
- Flutter 打包Android APK 笔记与事项
获取一个KEY 首先要获取 你的 打包应用的一个 key ,这一步其实和 在AndroidStudio 上打包 APK 一样,都是要注册一个本地的 key,key 其实也就是 jks文件啦. 如果已经 ...
- Flutter 打包程序 build android apk
Step-1 Java 路径 找到java路径, 可使用[flutter doctor -v] Step-2: 进入目录 找到路径后 C:\Program Files\Java\jre1.8.0_23 ...
- flutter vscode 安卓打包apk文件
配置 VSCode默认是没有使用密钥签名的,往往我们在正式项目中是需要签名的.那就创建好了...所以需要自己创建并使用密钥签名 步骤一 创建密钥库 执行以下命令: keytool -genkey -v ...
- AndroidStudio 中怎样查看获取MD5和SHA1值(应用签名)
曾经在Eclipse中我们获取MD5和SHA1非常easy就找到了例如以下图所看到的: 就能够在Eclipse中看到所须要调试的MD5和SHA1.可是在AndroidStudio中我找了一圈也没有发现 ...
随机推荐
- Delphi RSA加解密【 (RSA公钥加密,私钥解密)、(RSA私钥加密,公钥解密)、MD5加密、SHA加密】
作者QQ:(648437169) 点击下载➨delphi RSA加解密 [Delphi RSA加解密]支持 (RSA公钥加密,私钥解密).(RSA私钥加密,公钥解密).MD5加密.SHA1加密.SHA ...
- DELPHI6中DSGNINTF.DCU找不到时的解决方法
https://www.cnblogs.com/gaodu2003/archive/2009/06/04/1495789.html 1.添加 lib\designide.dcp到控件的dpk文件的re ...
- 深度学习-InfoGAN论文理解笔记
在弄清楚InfoGAN之前,可以先理解一下变分推断目的以及在概率论中的应用与ELBO是什么,以及KL散度 https://blog.csdn.net/qy20115549/article/detail ...
- 生意bisynes商业
1.Of, to, pertaining to or utilized for purposes of conducting trade, commerce, governance, advocacy ...
- Oracle解决锁表语句与批量生成解锁语句
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...
- IIS7 URL重写如何针对二级域名重写
二级域名与站点主域名是绑在同一目录下,想实现访问二级域名重写至站点下的某个目录. 如: 访问so.abc.cn 实际访问的是站点根目录下的search目录下的文件 相当于so.abc.cn绑定至s ...
- vs2013 C++编译器在调试的时候无法看到变量的值
- C# vb .net实现棕褐色效果特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的棕褐色效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一 ...
- Java调用Http/Https接口(2)--HttpURLConnection/HttpsURLConnection调用Http/Https接口
HttpURLConnection是JDK自身提供的网络类,不需要引入额外的jar包.文中所使用到的软件版本:Java 1.8.0_191. 1.服务端 参见Java调用Http接口(1)--编写服务 ...
- 30个关于Shell脚本的经典案例(上)
对于初学者而言,因为没有实战经验,写不出来Shell脚本很正常,如果工作了几年的运维老年还是写不出来,那就是没主动找需求,缺乏练习,缺乏经验.针对以上问题,总结了30个生产环境中经典的Shell脚本, ...