坑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