Ionic - 踩坑记录 #持续更新#

11 篇文章 0 订阅
11 篇文章 1 订阅

坑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 ionic@3.9.2

检查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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值