使用 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】:

对我来说,最终的效果就是这样:

&lt;preference name="android-targetSdkVersion" value="28" /&gt;

【讨论】:

【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章

修复 WP 弹跳 IBM MobileFirst 6.3

使用 Ionic-v3 加载位于设备内部的视频时,HTML5 视频播放器出错

Cordova iOS 3.6.3+ 问题 - [__NSArrayI 长度]:无法识别的选择器

IBM MobileFirst 6.3 - Android 指纹认证

使用 ionic-v4 构建(打包).IPA 的 CLI 命令

在angularjs和ionic-v1中的一个公共标题栏中仅显示一个图标