1. 程式人生 > >ionic3之在模擬器上執行ionic3程式-yellowcong

ionic3之在模擬器上執行ionic3程式-yellowcong

配置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 ,版本都是缺少的版本,不是瞎裝的
這裡寫圖片描述