坑1: 未在 app.module.ts
中導入 HttpClientModule
ionic g provider movies 命令執行後並未在 app.module.ts 中自動導入 HttpClientModule。
坑2: Chrome 調試時 CORS 問題
最簡單的辦法就是Chrome 安裝 Allow-Control-Allow-Origin 插件了,鏈接 ==>
https://download.csdn.net/download/lizhipeng123321/10546503
坑3: WKWebView 問題
emmm… 真機調試的時候,Android 端木有問題,顯示正常,而 iOS 端啥都不顯示,不知道問題出在哪裏(我懷疑是 WKWebView 的 CORS 問題,求評論!!!),我的解決辦法是,降回到 UIWebView。
首先卸載 Ionic WebView 插件
ionic cordova plugin remove cordova cordova-plugin-ionic-webview --save
ionic cordova platform rm ios
ionic cordova platform add ios
ionic cordova build ios --prod
config.xml
<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />
坑4: 打包構建失敗
將參數-Xmx20484m更改爲1024行:
args.push(' - Dorg.gradle.jvmargs = -Xmx1024m'); 在您的項目文件平臺\ android \ cordova \ lib \ builders \ GradleBuilder.js中。
坑5: 發佈應用的時候如果遇到翻譯錯誤即MissingTranslation
暫時的解決方法是,不進行翻譯校正, 在 /platforms/android/build.gradle 中的android {}節中加入:
lintOptions { disable 'MissingTranslation', 'ExtraTranslation' }
或者在報錯的XML的父級根元素添加
tools:ignore="MissingTranslation" xmlns:tools="http://schemas.android.com/tools"
如:
<resources tools:ignore="MissingTranslation" xmlns:tools="http://schemas.android.com/tools">
坑6: 發佈正式環境應用後,打開失敗
檢查本地Gradle版本,可以看坑9;(是否有配置全局變量?版本是否對應?)
gradle -v
檢查Android SDK是否正確下載;(SDK版本是否正確,SDK tools 重新安裝對應SDK,並檢查platform/Android/build.gradle裏SDK配置)
adb
cordova requirements
檢查Ionic版本;(ionic CLI V4有一些問題,降級處理一下)
ionic -v
npm install -g [email protected]
檢查Cordova版本;
cordova -v
坑7: Ionic Framework不支持Android4.2.2及以下
之前有寫過https://blog.csdn.net/lizhipeng123321/article/details/81708602
坑8: 運行時報JDK錯誤 Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap
檢查本地是否安裝了對應版本的JDK
64位必須安裝64位JDK(這裏要注意)
配置環境變量
變量名:_JAVA_OPTIONS
變量值:-Xmx512M
坑9: 關於Gradle錯誤
檢查本地Gradle配置
關於下載Gradle慢的問題,有2種解決辦法
1)提前下載,配置在全局變量,https://services.gradle.org/distributions/
2)修改本地下載路徑配置
把下載的文件放在本地服務器,暴露出一個下載地址(我是用NodeJs),再通過http://localhost/gradle-2.14.1-all.zip 可以直接訪問
執行下面命令改變本地指向的下載地址
set CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL=http://localhost/gradle-2.14.1-all.zip
還有一種方法是下載後直接放再C:\Users\Administrator\.gradle\wrapper\dists,如果上面的方法不行可以嘗試這個
坑10: ionic打包apk時,沒有任何報錯或者執行情況,直接跳過命令
檢查開發環境的配置,如坑6;
不使用ionic build android命令,改用 cordova compile命令執行就打包;
ionic start demo 新建一個新項目,打包編譯,再回到舊項目打包;
參考:
https://segmentfault.com/q/1010000010237625
https://www.jianshu.com/p/7ec74328f6e5
坑11: Ionic android 版本與本地sdk版本不一致,要修改本地版本配置
修改3個文件
1.platforms/android/AndroidMainitest,xml
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" />
2.platforms/android/cordovalib/project.properties
target=android-26
3.platforms/android/project.properties
target=android-26
坑12: 自動對焦與軟鍵盤輸入法
封裝的2個方法都可以實現自動對焦,在開發環境上無差異,但是在打包後真機上會有區別。
下面兩個
使用select()不會調起軟鍵盤,若要使用鍵盤則點擊輸入框即可彈出;
使用focus()會調起鍵盤,有時候會遮擋屏幕。
//不彈出軟鍵盤
inputSelect(id) {
var input = this.ele.nativeElement.querySelector('.' + id + ' input');
//this.keyboard.close();
var to = setTimeout(function () {
input.select();
clearTimeout(to);
}, 700);
}
//彈出軟鍵盤
inputFocus(id) {
var input = this.ele.nativeElement.querySelector('.' + id + ' input');
var to = setTimeout(function () {
input.focus();
clearTimeout(to);
}, 700);
}
相關問題
https://stackoverflow.com/questions/30345879/error-when-running-cordova-build-release-android
https://github.com/ionic-team/cordova-plugin-ionic-keyboard
https://github.com/ionic-team/ionic-plugin-keyboard/issues/235