Google Play 显示错误的 API 级别

问题描述 投票:0回答:5

在 Google Play 中上传我的 APK 后,它会显示在 APK 详细信息中:

API 级别:14-17

并在 Play 商店中公开展示“4.0 及更高版本”。

虽然我以前的版本有 API 级别 14+,但我更改了我的应用程序并设置了以下 minSDK 和 targetSDK:

<uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="12"
        android:maxSdkVersion="17"/>

但是在上传新的 APK 后,GOOGLE PLAY 显示错误的 API 级别。它显示“API 级别:14-17”。我厌倦了这个事实。为什么不显示 11-17 并公开“3.0 及以上”。

有人知道真相吗?

android google-play android-version android-debug
5个回答
0
投票

有时 google play 更新需要时间才能反映在列表中。您可以再等一段时间,这样它就不会因为您的代码问题而更新。

如果长时间后仍然显示,您可以尝试的一件事是删除其中一个要求,最好删除

android:maxSdkVersion="17"
并将其上传到google play并等待一段时间以进行更新。

NB: One more thing is if your app not compatible with some api levels google play may not display those api levels in their listing


0
投票

我认为你不应该在 AndroidManifest 上定义它。在您的 build.gradle 中设置 min 和 target sdk 并从清单中删除。在编译过程中,相应的值会自动添加到清单中。

您还可以分析您的 apk 以确定实际应用了哪些 min/target sdk。这可以使用 apktool 完成,或者您可以在手机上安装 apk 并使用 AppChecker 或任何类似的应用程序。

您还可以根据需要使用 min/target sdk 创建空白的新项目(新项目向导总是会询问)以查看应该如何设置,以确保您没有弄乱任何东西


0
投票

一般来说,可以通过增加 APK 的

minSdkVersion
 来强制降级
versionCode
(实际上是任何一种更改)——不要与
versionName
混淆! -- 因为 APK 的新版本(现在降低了
minSdkVersion
)将在 Google Play 中优先显示。

this Stackoverflow 线程中讨论了类似的案例。

另请注意,正如 M.L.Murphy(2019 年),忙碌的编码员安卓开发指南,CommonsWare,第 85 页 指出,

你的

defaultConfig
闭包在模块的
android
文件中的
build.gradle
闭包内有一对名为
minSdkVersion
targetSdkVersion
的属性。从技术上讲,这些覆盖值可以通过
<uses-sdk>
清单中的元素

因此,如果您使用 Gradle,检查

build.gradle
文件中是否存在潜在冲突的
{min,target,max}SdkVersion
值可能会有用。实际上,在
build.gradle
中定义这些值并在
AndroidManifest.xml
中跳过它们就足够了,但是人们会把自己束缚在 Gradle 上。


P.S.:可能需要注意有关

minSdkVersion
的一些限制,如apilevels.com上的概述中所列

  • Google Play 服务不支持 API 级别 19 以下的 Android 版本。
  • Jetpack Compose 需要
    minSdkVersion
    >= 21.
  • Jetpack/AndroidX 库需要
    minSdkVersion
    >= 14.

请注意,这些值可能会随时间变化。


0
投票

由于 Android 平台处理 API 级别兼容性的方式,Google Play 上显示的 API 级别可能不正确。

当您在 AndroidManifest.xml 文件中设置 minSdkVersion 和 targetSdkVersion 时,您是在告诉 Android 系统您的应用程序兼容的最低和最高 API 级别。但是,如果您的应用程序使用在较高 API 级别中引入的某些功能或 API,它可能无法与运行较低 API 级别的设备完全兼容,即使您的 minSdkVersion 设置较低。

在这种情况下,Google Play 可能将 API 级别显示为 14-17,因为您的应用由于使用某些功能或 API 而无法与运行 API 级别 11-13 的设备完全兼容。因此,Google Play 会显示您的应用兼容的最高 API 级别。

要解决此问题,您可以尝试删除任何在较低 API 级别上不支持的功能或 API,或者您可以将 minSdkVersion 调整到更高的 API 级别以确保与所有设备完全兼容。此外,您可以联系 Google Play 支持以获得有关此问题的进一步帮助。


-1
投票

我认为你有第三方库覆盖你的清单,所以你可以试试这个代码,也许这可以帮助你(毕竟我没有尝试过)。

<uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="12"
        android:maxSdkVersion="17"
        tools:node="replace" />

你也可以试试

tools:node="strict"

在 Gradle(.kts) 中,你也可以用这个改变

minSdk
targetSdk

android {
    compileSdk = YOUR_COMPILE_SDK

    defaultConfig {
        ...
        minSdk = YOUR_MIN_SDK
        targetSdk = YOUR_TARGET_SDK
        ...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.