ionic打包app——以安卓版本为例 辛苦之路~~~
最近同事做了个angular项目,因为要离职,所以项目我就来接手了,用ionic打包app,然后无数配置的坑就等着我了~~~
环境安装
1.nodejs
因为自己刚接触做angular项目,就更新到了最新的版本

注意:之前一个网友说自己安装版本5.7,尽量不要安装太新的版本,因为可能会出现兼容性问题,一开始本人安装的是6.+的版本,后来出现问题的,马上换回5.7的,问题就不会出现了。
2.JDK
下载安装jdk,我这里装的版本是1.8,(切记要和自己电脑的位数要一致 32/64,不然打包过程可能会出问题)
jdk官网下载地址:https://www.oracle.com/technetwork/java/javase/overview/index.html,下载好后默认安装完成。
bug解决办法:jdk之前安装了最新版本13.0.1 ,结果打包的时候一直出这个错,最后解决办法:把13.0.1卸载掉,安装低版本,1.8.0,有效解决问题


配置环境变量:(我的电脑——属性——高级系统设置——环境变量——系统变量)
新建系统环境变量 JAVA_HOME,路径指向jdk的安装目录,如:C:\tools\Java\jdk1.8.0_151;
新建系统环境变量CLASS_path,路径: %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在系统变量path里面添加:%JAVA_HOME%\bin;
尝试window+R向命令行输入java -version

3.SDK
下载安装sdk即可,下载官网https://www.androiddevtools.cn/ 我安装的Windows IDE 安装版 (64-bit)版本
默认安装完成
4.确保已经安装有ionic 和cordova
npm install ionic cordova -g
5.到这里,环境安装的差不多了,可以进行打包了
执行添加安装平台的命令
cordova platform add android
打包项目
ionic cordova build android --prod --release
6.运行的时候报错,没有安装gradle。从官网下载 https://gradle.org/install/#manually

点击complete下载,解压放到tools文件夹下,然后在path进行配置(我的电脑——属性——高级系统设置——环境变量——系统变量——path配置gradle路径)


7.配置完成后,关闭cmd窗口,重新打开cmd命令,输入ionic cordova build android --prod --release 进行打包,会出现下面这个地址,就是打包好的安卓apk地址,然后进行手机安装

8.安装过程中发现安装失败,因为没有证书,原因没有签名所以不会给通过

解决办法:
1.C:\Users\huochaihy\AppData\Local\Android\Sdk\tools\bin>sdkmanager --licenses 后续全选y(yes),安卓sdk 授权

2.新建一个签名文件夹,在文件夹下打开cmd窗口命令,把刚才找到的apk包复制过来,输入以下命令生成密匙
# 生成密钥 (参考地址:https://blog.csdn.net/bao19901210/article/details/79629112)
# keytool -genkey -v -keystore myApp.keystore -alias myApp -keyalg RSA -keysize 2048 -validity 20000
# keytool -genkey -v -keystore 密钥名字 -alias 别名 -keyalg RSA -keysize 2048 -validity 20000

3.生成签名 (参考地址:jarsgner 签名命令 https://blog.csdn.net/dengweijunkedafu/article/details/69949003)
-- 签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore app-release-unsigned.apk myApp

注意:把签名单独拎出来的原因是:你只需要执行签名命令就行,就不需要在执行生成签名文件命令了,给他拎出来是因为如果我生成的签名文件在你刚才那个目录里你重新打包就会把签名文件删除掉
8.最后我们如果更新了项目,重新打包的时候,先运行
ionic cordova build android --prod --release
成功后找到安卓apk,把没有授权的apk文件放到自定义“签名”文件夹下,然后再运行签名命令就可以了
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore app-release-unsigned.apk myApp
最后“签名”文件夹中的app-release-unsigned.apk进行安装就可以了
==================================================================================================================
bug问题总集:
node-sass 安装卡在node scripts/install.js
解决办法:命令行输入:npm install node-sass
ionic 打包报错An error occurred while running cordova prepare (exit code 1):
解决办法:删除并重新添加平台以使用以下命令解决问题:
cordova platform rm ios
cordova platform add ios
如果执行 ionic cordova build android报错,执行下面的试下:
cordova platform rm android
cordova platform add android
ionic打包app——以安卓版本为例 辛苦之路~~~的更多相关文章
- windows下 ionic 打包app --以安卓版本为例
环境安装 1.nodejs 安装版本5.7,尽量不要安装太新的版本,因为可能会出现兼容性问题,一开始本人安装的是6.+的版本,后来出现问题的,马上换回5.7的,问题就不会出现了. 安装教程网上教程很多 ...
- ionic打包步骤(安卓)
打包APP之前要做的工作: ionic resources -icon : [创建一个app图标]: 以png/psd/AI格式保存在项目目录下的:resource/android/icon.png ...
- hubilder 打包app ios高版本不支持问题
<script type="text/javascript"> document.addEventListener('plusready', function(){ v ...
- ionic 打包安卓包
一.配置环境: 先按照之前的文章,配置好环境需要: 二.安装 1. 这里前提是 需要安装 node (地址: http://nodejs.cn/download/) 命令: node -v // ...
- ionic 打包安卓包 (debug调试版和 release发布版)
一.配置环境: 先按照之前的文章,配置好环境需要: 安装jdk,配置环境变量:( http://www.cnblogs.com/loveyaxin/p/7520618.html) 安装android- ...
- 一个简单移动页面ionic打包成app
先贴JS代码好了,缓动和调整透明度的功能,最后用ionic打包成应用就可以 window.onload=function(){ search(); move(); calc();}function s ...
- vue 用huilder打包APP时,安卓按返回键就退出App改为按两次再退出App
做vue项目时,用Hbuilder打包APP,在安卓下按返回键就是退出了APP,百度了下.都是使用到MUI来解决的,自己也记录下. 在main.js里面引入mui.js并使用. import mui ...
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题
vue用hbuilderX打包app嵌入h5方式云打包和遇到的问题 vue用hbuilderX打包app就可以了,不过有兼容性问题,转换rem的用不了,嵌入到app的webview里面变得很小了,另外 ...
随机推荐
- mybatis中resultMap的使用
在mybatis中,使用<select>标签,必须要设置resultType属性 或 resultMap属性 否则会报错! resultType一般是返回简单类型的查询结果,涉及一张表 可 ...
- 使用Oracle12c 以上的PDB创建数据库用户 密码过期的简单处理
1. 先通过监听查看PDB的名字 Windows 打开命令行: 输入命令 lsnrctl status 一般在如图示的最下面 2. 也可以通过GS的全局配置文件来查看 数据库连接SID信息. C:\P ...
- [19/06/06-星期四] CSS基础_盒子模型
一.盒子模型(框模型.盒模型) CSS处理网页时,它认为每个元素都在一个不可见的矩形盒子里. 为什么想象成盒子模型?因为把所有元素想象成盒子,那么我们对网页的布局就相当于摆放盒子.我们只需要把相应的盒 ...
- Two modules in a project cannot share the same content root报错解决方案
观察上方是否出现两个同样的项目,删除不需要的那个,我觉得是因为两个项目同时引用一个根目录文件导致的.
- Django创建mysql数据表流程
在Django项目建好后,在setting.py中设置好mysql连接参数: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysq ...
- Python入门之 Python内置函数
Python入门之 Python内置函数 函数就是以功能为导向,一个函数封装一个功能,那么Python将一些常用的功能(比如len)给我们封装成了一个一个的函数,供我们使用,他们不仅效率高(底层都是用 ...
- C#.NET、Power BI、数据挖掘
阅读目录 1.采集目目标特点与分析 2.方案第一版-Low到爆,别笑话 3.碰壁后的第二版方案 4.最终方案第三版 5.总结 说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C# ...
- Spring基础16——使用FactoryBean来创建
1.配置bean的方式 配置bean有三种方式:通过全类名(class反射).通过工厂方法(静态工厂&实例工厂).通过FactoryBean.前面我们已经一起学习过全类名方式和工厂方法方式,下 ...
- Spring基础08——使用p命名空间
1.使用p命名空间 为了简化xml配置,越来越多的xml文件采用属性而非子元素配置信息,Spring从2.5版本开始引入了一个新的p命名空间,可以通过<bean>元素属性的方式配置Bean ...
- 关于Mysql group by 的记录
对于有group by 字段的select语句,group by 后面的字段如果没有出现在组函数里(max,min,sum,avg, count等),则一定要出现在select后面的字段里, 否则会报 ...