使用 ionic-v3 和 cordova 6.3.0 警告 Android API 级别 28
Posted
技术标签:
【中文标题】使用 ionic-v3 和 cordova 6.3.0 警告 Android API 级别 28【英文标题】:Warning Android API level 28 with ionic-v3 and cordova 6.3.0 【发布时间】:2019-11-22 06:17:18 【问题描述】:我曾经在 google play 上发布过一个 ionic 应用程序,但今天早上我收到以下警告:“您的应用程序现在以 API 26 级别为目标。不过,它现在应该以 API 28 级别为目标......”
我正在使用 Cordova 6.3.0,如何使用它来定位 API 28?
这是我的离子信息:
Ionic:
ionic (Ionic CLI) : 4.12.0 (/usr/local/lib/node_modules/ionic)
Ionic Framework : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.4
Cordova:
cordova (Cordova CLI) : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 6.3.0, ios 5.0.1
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 1.2.1, (and 14 other plugins)
System:
NodeJS : v10.16.0 (/usr/local/bin/node)
npm : 6.9.0
OS : macOS Mojave
Xcode : Xcode 10.2.1 Build version
我在本地构建我的应用程序时没有错误消息,就像我到目前为止所做的那样,警告仅在谷歌播放平台上。
这里是我常用的命令行:
npm i
cordova platform rm android
ionic cordova platform add android@6.3.0 --save-exact
ionic cordova build android --prod --release
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore somekeystorye.keystore /Users/user/Documents/dev/app/platforms/android/build/outputs/apk/android-release-unsigned.apk Name
~/Library/Android/sdk/build-tools/29.0.1/zipalign -v 4 /Users/user/Documents/dev/app/platforms/android/build/outputs/apk/android-release-unsigned.apk /Users/user/Documents/dev/app/platforms/android/build/outputs/apk/android-release-0.0.20.apk
有什么想法吗?
编辑 似乎是:
<preference name="android-targetSdkVersion" value="28" />
做这里提到的工作:Can cordova android@6.2.3 target SDK 26? 我现在没有任何警告。
将尝试检查并稍后回来与您保持联系
【问题讨论】:
在android中添加28个SDK,然后安装平台,后面不添加版本 我已经添加了,但它仍然针对 API 级别 26。如何在不添加版本的情况下安装平台? 离子cordova平台添加android 你能解决这个警告吗? 【参考方案1】:对我来说,最终的效果就是这样:
<preference name="android-targetSdkVersion" value="28" />
【讨论】:
【参考方案2】:在这个错误上花了一些时间后,我找到了这三个解决方案。
解决方案 1
ionic cordova platform rm android
ionic cordova platform add android@8.1
解决方案 2
<preference name="android-targetSdkVersion" value="28" />
解决方案 3(如果上述解决方案不起作用,则仅适用)
-
执行此步骤
-
将您的 sdk 从 android studio 更新到 api 级别 28。
使用“离子启动”创建新项目。
将您的旧代码复制粘贴到这个新创建的项目并安装您的所有插件,它就完成了!
【讨论】:
【参考方案3】:直接改uses-sdk
不是正确答案,至少还不够好也不是……
您最好将 cordova android engine 更新到最新版本。它的默认目标 sdk 版本已经是 28。 (见https://github.com/apache/cordova-android/issues/791)。仅在 config.xml 中更改它只会返回一堆很少出现的错误。
https://cordova.apache.org/docs/en/latest/config_ref/#engine
【讨论】:
【参考方案4】:这对我有帮助:
存档: paltforms/android/app/src/main/androidmanifest.xml
更改 'android:targetSdkVersion' 值:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="28" />
https://forum.ionicframework.com/t/android-compatibility-api-level-cordova-or-ionic/8194/14
【讨论】:
【参考方案5】:更新 Cordova,然后重新构建。
npm i -g cordova
ionic cordova build --release android --prod
【讨论】:
以上是关于使用 ionic-v3 和 cordova 6.3.0 警告 Android API 级别 28的主要内容,如果未能解决你的问题,请参考以下文章
使用 Ionic-v3 加载位于设备内部的视频时,HTML5 视频播放器出错
Cordova iOS 3.6.3+ 问题 - [__NSArrayI 长度]:无法识别的选择器
IBM MobileFirst 6.3 - Android 指纹认证