配置ionic来生成apk的操作。说实话,这个地方坑还真不少啊,我就遇到不少坑啊,1、jdk版本需要和系统版本一致,2、sdk安装,需要安装和ionic的build.gradle 的android版本,也不是下安装的,3、修改StudioBuilder.js,设置请求的gradle-4.1-all.zip 文件地址。
JDK配置
需要保证jdk的位数和window的系统的位数一致,不然会报错,说内存不够
需要保证64位的系统安装64位的jdk,不然就会报错,会哭的。
android SDK下载地址
#官网下载地址
http://tools.android-studio.org/index.php/sdk
#个人下载地址
http://yellowcong.qiniudn.com/installer_r24.4.1-windows.exe
根据build.gradle 来进行sdk的安装,大家可以看到,我指定的sdk版本是26的。
配置环境变量
变量名 | 路径 |
---|---|
ANDROID_HOME | D:\Program Files\Android\android-sdk |
PATH | D:\Program Files\Android\android-sdk\platform-tools D:\Program Files\Android\android-sdk\tools |
配置环境变量,2个环境变量配置
验证是否配置成功
# 查看是否有android 设备连上服务了
adb devices
Genymotion
这个是一个android的模拟器,使用这个模拟器的时候,需要注册用户,然后才可以使用,这个模拟器速度挺快的。
#官网下载地址
http://www.genymotion.net/
#个人下载地址
http://yellowcong.qiniudn.com/genymotion-2.10.0-vbox.exe
安装完成了之后,创建虚拟机
启动虚拟机
验证模拟器是否连接adb
查看虚拟机是否能查看到虚拟机的信息。
adb devices
ionic3打包到android
修改StudioBuilder.js
修改StudioBuilder.js 文件(下面的是源文件)
修改后的代码,指向当前wrapper目录下面的gradle-4.1-all.zip 文件,这个是单独下载的
修改后效果(ps:这个文件夹的路径是根据StudioBuilder.js 自动生成的,不是手动改的)
打包apk
#添加android, 如果是ios ,设置ios
cordova platform add android
#编译成apk
ionic build
#开启
cordova run android
常见问题
Exception in thread “main” javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed:
导致这个问题的原因就是gradle-4.1-all.zip 没有下载下来,
Downloading https://services.gradle.org/distributions/gradle-4.1-all.zip
Exception in thread "main" javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1959)
解决方案
我们的解决方法有两种,1、单独下载下来(建议这种方法,这种不用每次都去下载),2、修改为http协议的
方法1、单独下载gradle-4.1-all.zip
修改StudioBuilder.js 文件(下面的是源文件)
修改后的代码,指向当前wrapper目录下面的gradle-4.1-all.zip 文件,这个是单独下载的
修改后效果(ps:这个文件夹的路径是根据StudioBuilder.js 自动生成的,不是手动改的)
方法2、修改https协议为http
将https协议修改为http协议
修改后gradle-wrapper.properties 文件,就自动也修改为 http协议的了,修改为我们手动修改的配置(ps:这个文件夹的路径是根据StudioBuilder.js 自动生成的,不是手动改的)
修改后,看到下载地址为 http了
Could not reserve enough space for 2097152KB object heap
Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
可以从提示信息中可以看出,就是由于内存不够,所以报错了。
其实这个问题真正的原因是java的版本问题,是64位的系统安装了32位的系统的jdk导致的。 我也是看到别人的提示发现,我还真的是64的系统装32位的jdk,我也是醉了。
No installed build tools found. Install the Android build tools version 19.1.0 or higher.
出现这个问题的原因是没有android的build-tools
解决办法
下载一个build tools 即可
下载完成后,build-tools目录下,就是当前下载的build工具
You have not accepted the license agreements of the following SDK components [Android SDK Platform 26, Android SDK Build-Tools 26.0.2].
出现这个问题,就是刚刚的sdk装得有问题啊,应该把Android SDK Platform 26相关的工具都安装上
解决办法
安装sdk platform ,版本都是缺少的版本,不是瞎装的
安装build tools ,版本都是缺少的版本,不是瞎装的