Ionic - 踩坑記錄 #持續更新#

坑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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章