Cordova开发常见问题
在利用ionic或者直接使用Cordova开发会经常遇见些问题,这里总结下,
本文持续更新
- Android版,代号、标记和细分版本 (Build) 号关系
- crosswalk-webview是否需要
- config.xml文件修改,平台重新添加?
- [IOS-相册权限](#Missing Info.plist key)
- IOS-打包上传,构建版本中不显示
- Could not find an installed version of Gradle
- com.android.ide.common.process.ProcessException: Failed to execute aapt
代号、标记和细分版本 (Build) 号关系
代号 | 版本 | API级别 |
---|---|---|
Nougat | 7.1 | API 级别 25 |
Nougat | 7.0 | API 级别 24 |
Marshmallow | 6.0 | API 级别 23 |
Lollipop | 5.1 | API 级别 22 |
Lollipop | 5.0 | API 级别 21 |
KitKat | 4.4-4.4.4 | API 级别 19 |
Jelly Bean | 4.3.x | API 级别 18 |
Jelly Bean | 4.2.x | API 级别 17 |
Jelly Bean | 4.1.x | API 级别 16 |
Ice Cream Sandwich | 4.0.3-4.0.4 | API 级别 15,NDK 8 |
最新最全信息,点击查看官网文档
crosswalk-webview是否需要
cordova-plugin-crosswalk-webview
这个插件,主要是解决老手机卡顿APP操作下卡顿问题,但如果不考虑较旧手机(Android4.4以下),那么不建议安装
Android 4.4之前的Android系统浏览器内核是WebKit,Android4.4系统浏览器切换到了Chromium(内核是Webkit的分支Blink)。
安装该插件,就是使用Crosswalk Webview替代了系统的WebView.
本质就是将Chromium
带到APP里,但是4.4及以后已经切换到了Chromium
优点:
- 不依赖安卓版本
- 兼容性
- 表现提升,对比老系统webviews的话
不足:
- 增加内存开销
- 增加APK体积大小(17MB左右)
- 增加安装体积(50MB左右)
config.xml文件修改,平台重新添加?
- ionic项目的的话,
不需要
,执行ionic cordova build platform
或者ionic cordova run platform
,ionic-cli直接更新平台中对应的code了。 - Cordova初始化构建的项目,需要rm然后再add。
IOS-相册权限
如果APP没有声明相机权限,在实际的APP操作中,访问相册,APP会直接闪退并报错。所以必须添加对应插件,具体配置信息如下:
1 | <edit-config target="NSCameraUsageDescription" file="*-Info.plist" mode="merge"> |
注意edit-config
标签中的内容会打包进入info.list文件中,这段必须写,否则,最终打包的APP提交构建版本会失败
IOS-打包上传,构建版本中不显示
如果打包上传,提示了成功,但是在Itunes Connect-活动-所有构建版本中没有看到,说明提交APP被打回来了,都会有邮件,并说明了错误信息。
比如下面信息。
Missing Info.plist key - This app attempts to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
对应修复后,再次提交,直接刷新页面,就会提示,提交的版本及状态。
Could not find an installed version of Gradle
完整错误是
Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio
官方网站,有相关介绍如下:
As of cordova-android@4.0.0, Cordova for Android projects are built using Gradle.
所以明白了问题,解决方案正如错误而言,安装Gradle即可。
如果是mac
建议,执行brew install gradle
即可。
com.android.ide.common.process.ProcessException: Failed to execute aapt
执行cordova build android
会报此错误,原因在于项目中的crosswalk-webview。解决办法
- 卸载cordova-plugin-crosswalk-webview插件
cordova plugin rm cordova-plugin-crosswalk-webview
- 安装cordova-android-support-gradle-release插件
cordova plugin add cordova-android-support-gradle-release
两种办法都可,取决于我们还是否使用crosswalk,关于使用它的优缺点,戳这里