一、生成androd签名证书

Android studio的Build > Grenerate Signed Bundle



选择apk



点击Create New



录入对应的签名信息;点击确定



对应盘符下就会生成一个签名文件

二、拷贝签名到项目目录

将签名文件拷入项目的app目录下

三、配置 greadle.properties

在greadle.properties中增加如下配置(对应上一步生成的签名证书的别名,密码)


MYAPP_RELEASE_KEY_ALIAS=android_keystore # 别名
MYAPP_RELEASE_KEY_PASSWORD=123456 # 别名密码
MYAPP_RELEASE_STORE_PASSWORD=123456 # 证书密码
MYAPP_RELEASE_STORE_FILE=android_keystore.jks # 证书路径

四、配置build.gradle(Module:app)

在android下增加如下配置(注意release中配置的value一定要对应到上一步greadle.properties中配置的key,否则编译报错)


android {
# 省略其他配置 .... # 新增配置
signingConfigs{
release{
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
buildTypes {
release {
# 省略其他配置 ....
# 新增配置
signingConfig signingConfigs.release
}
}
# 省略其他配置 ....
}

五、解决 Compatible side by side NDK version was not found.

配置完成后

使用android studio运行gradlew assembleRelease 打包发布android与flutter混合开发项目提示

D:\learnFlutter\flutter_hybrid\Flutterhybridandroid>gradlew assembleRelease

Compatible side by side NDK version was not found.
Unable to strip library 'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\arm64-v8a\libapp.so' due to missing strip tool for ABI 'ARM64_V8A'. Packaging it as is.
Unable to strip library 'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\armeabi-v7a\libflutter.so' due to missing strip tool for ABI 'ARMEABI_V7A'. Packaging it as is.
62 actionable tasks: 59 executed, 3 up-to-date

Android studio的File->Project Structure窗口下进行NDK的相关下载



等待下载完成



现在完成后会自动同步ndk路径



点击OK后gradle会自动同步

六、解决 Compatible side by side NDK version was not found.

有提示了另一个错误


Compatible side by side NDK version was not found.
Unable to strip library 'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\arm64-v8a\libapp.so' due to missing strip tool for ABI 'ARM64_V8A'. Packaging it as is.
Unable to strip library 'D:\learnFlutter\flutter_hybrid\Flutterhybridandroid\app\build\intermediates\merged_native_libs\release\out\lib\armeabi-v7a\libflutter.so' due to missing strip tool for ABI 'ARMEABI_V7A'. Packaging it as is.
62 actionable tasks: 59 executed, 3 up-to-date
D:\learnFlutter\flutter_hybrid\Flutterhybridandroid>gradlew assembleRelease
62 actionable tasks: 8 executed, 54 up-to-date

根据android官网提示进行ndk版本配置

到安装的ndk目录下找到souce.propertites打开

根据

在build.properties中配置ndk版本

配置完成gradle自动同步

七、最后执行 gradlew assembleRelease打包

终于没有提到错误了


D:\learnFlutter\flutter_hybrid\Flutterhybridandroid>gradlew assembleRelease
62 actionable tasks: 5 executed, 57 up-to-date

在project 目录下也看见了久违的app-release.apk

最后就可以将这个apk发到真机安装了

使用android studio发布android与flutter混合开发项目的更多相关文章

  1. Flutter混合开发:Android接入Flutter

    Flutter Google推出已经已经一年多了,单个 Flutter 项目的开发流程已经很成熟了.对与个人开发者来说使用 Flutter 开发一个跨平台的App挺有意思.但是对于现有的项目改造来说还 ...

  2. 【Flutter 混合开发】添加 Flutter 到 Android Activity

    Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生 ...

  3. Android Studio发布Release版本之坑--Unknown host 'd29vzk4ow07wi7.cloudfront.net'

    使用Android Studio发布Release版本时,出现Unknown host 'd29vzk4ow07wi7.cloudfront.net'...错误. 解决方法:修改本机的DNS为8.8. ...

  4. 【Flutter 混合开发】添加 Flutter 到 Android Fragment

    Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生 ...

  5. Android开发新手学习总结(一)——使用Android Studio搭建Android集成开发环境

    [新手连载]一:使用Android Studio搭建Android集成开发环境http://bbs.itcast.cn/forum.php?mod=viewthread&tid=87055&a ...

  6. 使用Android Studio搭建Android集成开发环境

    有很长一段时间没有更新博客了,最近实在是太忙了,没有时间去总结,现在终于可以有时间去总结一些Android上面的东西了,很久以前写过这篇关于使用Android Studio搭建Android集成开发环 ...

  7. 【Android应用开发】Android Studio 简介 (Android Studio Overview)

    一. Intelij IDEA 环境简介 Android Studio 来源 : Android Studio 是 Intelij IDEA 的免费版本 + Android SDK 集成的; -- I ...

  8. Android开发学习总结(二)——使用Android Studio搭建Android集成开发环境

    有很长一段时间没有更新博客了,最近实在是太忙了,没有时间去总结,现在终于可以有时间去总结一些Android上面的东西了,很久以前写过这篇关于使用Android Studio搭建Android集成开发环 ...

  9. 使用Android Studio搭建Android开发环境

    一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...

  10. Android开发工具Android Studio、Android SDK和Genymotion完全配置

    所谓“工欲善其事,必先利其器”.Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提 ...

随机推荐

  1. JUC源码学习笔记8——ConcurrentHashMap源码分析1 如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移

    源码基于jdk1.8 这一片主要讲述ConcurrentHashMap如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移 系列文章目录和关于我 一丶ConcurrentHashMap概 ...

  2. mybatisplus数据层标准开发---分页功能

    1.创建一个拦截器类 package com.itheima.config; import com.baomidou.mybatisplus.extension.plugins.MybatisPlus ...

  3. 基于DPDK抓包的Suricata安装部署

    一.背景 Suricata支持网卡在线抓包和离线读取PCAP包两种形式的抓包: 离线抓包天然具有速度慢.非实时的特点 在线捕获数据包又包括常规网卡抓包.PF_RING和DPDK的方式 由于项目分光的流 ...

  4. 我没能实现始终在一个线程上运行 task

    前文我们总结了在使用常驻任务实现常驻线程时,应该注意的事项.但是我们最终没有提到如何在处理对于带有异步代码的办法.本篇将接受笔者对于该内容的总结. 如何识别当前代码跑在什么线程上 一切开始之前,我们先 ...

  5. CentOS 落幕,将于2021年底结束维护

    官方最新消息: 译文: CentOS项目的未来是CentOS Stream,明年,我们将把重点从重建Red Hat Enterprise Linux(RHEL)的CentOS Linux转移到Cent ...

  6. flask快速上手

    看完这2个基本可以起步flask了 一学习 https://www.codingdict.com/article/4884 二实战 https://blog.miguelgrinberg.com/po ...

  7. Python property、setter、deleter

    面向对象封装特点之一就是通过实现好的方法来访问,限制对数据的不合理访问,把对象状态私有化,仅供类的内部进行操作 下方示例,Test方法的number属性类实例的时候传递1,number是一个公开属性, ...

  8. xtrabackup: error: xb_load_tablespaces() failed with error code 57

    问题描述:在数据库上运行xtrabackup备份脚本出现的一些报错 DB_version:mysql8.0.26 Xtrabackup:percona-xtrabackup-8.0.27-19-Lin ...

  9. py文件转换为so文件

    将py文件编译为so文件 利用上面代码生成so文件生成的文件不方便取放,名字也不一样 通过执行发现转换执行了下面三句 /usr/local/python3/bin/cython test.py gcc ...

  10. mysql 清空数据表id 重1开始 帝国cms清空数据表id 重1开始

    alter table phome_ecms_news auto_increment=1; alter table phome_ecms_news_check auto_increment=1; al ...