Flutter项目打包生成APK

这篇具有很好参考价值的文章主要介绍了Flutter项目打包生成APK。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

flutter实现安卓打包:(以安卓Studio工具为例)

(1)创建key.jks文件

在安卓studio中调整至项目路径,例如:
我的项目所在地

E:\Flutter\fluttershuqi>

然后输入命令:

keytool -genkey -v -keystore E:\Flutter\fluttershuqi\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

最后的alias key , key指的是签名文件的别名。
其中E:\Flutter\fluttershuqi是我希望.jks文件创建的位置,

E:\Flutter\textdemo>keytool -genkey -v -keystore E:\Flutter\fluttershuqi\key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  1
您的组织单位名称是什么?
  [Unknown]:  2
您的组织名称是什么?
  [Unknown]:  3
您所在的城市或区域名称是什么?
  [Unknown]:  4
您所在的省//自治区名称是什么?
  [Unknown]:  5
该单位的双字母国家/地区代码是什么?
  [Unknown]:  6
CN=1, OU=2, O=3, L=4, ST=5, C=6是否正确?
  []:  Y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000):
         CN=1, OU=2, O=3, L=4, ST=5, C=6
输入 <key> 的密钥口令
        (如果和密钥库口令相同, 按回车):
[正在存储E:\Flutter\fluttershuqi\key.jks]

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\Flutter\fluttershuqi\key.jks -destkeystore E:\Flutter\fluttershuqi\key.jks -deststoretype pkcs1
2" 迁移到行业标准格式 PKCS12。

此时你的key.jks文件就创建成功了,
Flutter项目打包生成APK
如果此过程报错,请参考如何打包发布flutter项目

(2) 将创建的jks文件粘贴至Flutter项目的指定位置
  • (1)方案一:直接放在android/app文件夹下,这样的话第3步中的storeFile写法为:
    storeFile=key.jks或者storeFile=E:/Flutter/fluttershuqi/android/app/key.jks

  • (2)也可以在app目录下再创建一个文件夹,例如文件夹key
    storeFile=key/key.jks或者storeFile=E:/Flutter/fluttershuqi/android/app/key/key.jks

方法(一):
(3) 在项目目录下的android文件夹下,创建一个名为key.properties的文件,并打开粘贴下面的代码:

错误写法:

storePassword=123456   //输入上一步创建KEY时输入的 密钥库 密码
keyPassword=123456    //输入上一步创建KEY时输入的 密钥 密码
keyAlias=key
storeFile=E:/Flutter/fluttershuqi/android/app/key.jks    //key.jks的存放路径  此处要是用/而不是\

此处是我自己遇到的问题,中间一直找不到问题,最后才发现这个文件注释不是//而是#,我开始错误使用了//导致一直报如下错,这是将后面的空格和//的内容都识别到key路径中了,所以才会找不到。

* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file 'E:\Flutter\fluttershuqi\android\app\key.jks   \key.jks????��??��??' not found for signing config 'release
'.

正确写法:

storePassword=123456
keyPassword=123456
keyAlias=key
storeFile=E:/Flutter/fluttershuqi/android/app/key.jks

注意:后面连空格都不要有,不然也会报错

(4) 配置/android/app/build.gradle文件
  • 进入项目目录的/android/app/build.gradle文件,在
android {}

上面添加:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
  • 修改
buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}

为:

 buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
  • 添加:
signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
方法(二):
(3)配置build.gradle文件
  • 修改
buildTypes {
    release {
        signingConfig signingConfigs.debug
    }
}

为:

signingConfigs {

        release {
                keyAlias 'key'
                keyPassword '123456'
                storeFile file('key.jks')//此种写法默认key文件在android-app文件夹下
                storePassword '123456'
//            keyAlias keystoreProperties['keyAlias']
//            keyPassword keystoreProperties['keyPassword']
//            storeFile file(keystoreProperties['storeFile'])
//            storePassword keystoreProperties['storePassword']
        }
        debug {
            keyAlias 'key'
            keyPassword '123456'
            storeFile file('key.jks')
            storePassword '123456'
//            keyAlias keystoreProperties['keyAlias']
//            keyPassword keystoreProperties['keyPassword']
//            storeFile file(keystoreProperties['storeFile'])
//            storePassword keystoreProperties['storePassword']
        }
    }
  buildTypes {
        release {
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }
(4)打包 生成apk

输入命令:flutter build apk
即生成安装包,安装包位置:E:\Flutter\myflutter\build\host\outputs\apk\release,即在项目build文件夹下。文章来源地址https://www.toymoban.com/news/detail-413759.html

(5)关于备注内容
  • 修改应用名称和logo:
    Flutter项目打包生成APK

到了这里,关于Flutter项目打包生成APK的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • flutter项目用vscode打包apk包,完美运行到手机上

    flutter项目用vscode打包apk包,完美运行到手机上

    1.创建密钥库 执行以下命令: 生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天) 2.填写密钥内容 执行以上命令后会提示一次输入密钥库密码、确认密码、名字、单位等信息,最后问你是否确认创建,回复‘y’回车确认。 此时在F根目录中会出现一个key.jks文件

    2024年02月20日
    浏览(11)
  • Flutter 实现安卓原生系统级悬浮窗

    Flutter 实现安卓原生系统级悬浮窗

    Flutter实现安卓原生系统级悬浮窗 原创:@As.Kai 博客地址:https://blog.csdn.net/qq_42362997 如果以下内容对您有帮助,点赞点赞点赞~ 最近碰到了一个需求 使用Flutter实现悬浮窗效果 想来想去只能使用原生代码实现 需求整理: 应用移动到后台 - 显示系统级悬浮窗口 应用移动到前台

    2023年04月08日
    浏览(10)
  • VSCode 开发flutter 实现安卓设备远程调试

    VSCode 开发flutter 实现安卓设备远程调试

    目前只找到了安卓的调试方案😬。 1首先安装 ADB Commanads for VSCode扩展 并且必须确保ADB已经添加到系统环境变量中 如未添加请按照下面的方式添加,如添加请直接跳到下面。 2添加环境变量(windows可参考,mac忽略此项) 我将ADB安装到这个目录下,请查找自己的安装目录。 将

    2024年02月02日
    浏览(8)
  • flutter实现调用原生安卓的高德地图导航功能(插件化)

    flutter实现调用原生安卓的高德地图导航功能(插件化)

    查看了高德地图flutter插件的文档,都没有能支持导航的功能,并且flutter的高德插件支持的功能特别少,没办法,只能使用安卓原生的导航,flutter去调用了,具体实现方式如下: 创建 Flutter 插件 使用--template=plugin 声明创建的是同时包含了 iOS 和 Android 代码的 plugin; 使用--o

    2024年02月16日
    浏览(10)
  • 关于安卓打包生成aar,jar实现(一)

    关于安卓打包生成aar,jar实现(一)

    关于安卓打包生成aar,jar方式 背景 在开发的过程中,主项目引入三方功能的方式有很多,主要是以下几个方面: (1)直接引入源代码module(优点:方便修改源码,易于维护,迭代。缺点:对于新手不友好,可能会遇到依赖兼容问题,需要排除并且适配) (2)远程依赖,目

    2024年02月13日
    浏览(13)
  • 网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端

    网站转换APP源代码 WebAPP源代码 网站生成APP源代码 Flutter项目 带控制端

    源码介绍 一款网站转换成APP的源代码,开发语言使用Flutter,开发工具使用的是AndroidStudio,你只需要在APP源代码里面填写你的域名,即可生成即可生成APP,包括安卓或者苹果,与此同时我们提供了APP的控制端.你可以通过控制端设置APP的颜色、添加APP的图标、添加APP的菜单栏目。 添加

    2024年02月04日
    浏览(49)
  • flutter web项目中鼠标拖动无法实现滚动效果

    在完成web的flutter项目时,发现ListView列表使用鼠标拖动无法滚动,尝试发现使用触摸板可以实现滚动,但如果用户使用没有触摸板的电脑或列表为横向滚动时就无法实现项目需求了,在解决问题的过程中尝试了以下方法: 1.尝试使用点击事件模拟滑动手势 如果web项目中无法使

    2024年02月09日
    浏览(13)
  • Flutter安卓混淆的相关问题

    Flutter安卓混淆的相关问题

    当你执行 build apk 后,flutter会默认进行混淆,若你的应用中引用了第三方的sdk,在debug模式下没问题,但在release下可能就会出现各种各样的问题,找不到某个类,或者某个功能无法使用,甚至直接崩溃等,此时,就需要你去处理混淆的相关问题。 1.禁用混淆: 在使用flutter命

    2024年02月20日
    浏览(12)
  • Flutter打包iOS

    Flutter打包iOS

    1.使用Xcode打开flutter项目 双击这个文件 2、确认项目Bundle ID和开发者网站一致 参考链接https://blog.csdn.net/qq_34010941/article/details/113771702 IOS证书配置 https://blog.csdn.net/qq_34010941/article/details/113770509 解决iOS 证书不受信任的问题 https://blog.csdn.net/constant_rain/article/details/122314877 参考 htt

    2023年04月15日
    浏览(15)
  • flutter Android 打包和发布

    环境 mac vscode 项目简易打包 打开VScode终端:输入命令flutter build apk即可 可能报错: w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath: 修改android/build.gradle 中版本信息 项目正式打包 1、版本修改 在pubspec.yaml中,修改版本信息 可能感觉很疑惑,

    2024年02月12日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包