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 ,版本都是缺少的版本,不是瞎裝的