【问题标题】:TargetSdkVersion is 28 but highest api level is 26TargetSdkVersion 为 28 但最高 api 级别为 26
【发布时间】:2019-01-04 03:05:14
【问题描述】:

我正在尝试将我的应用程序从 Nougat API 级别 26 更新到 Android Pie,API 级别 28。我将 targetSdkVersion 设置为 28,并将 compileSdkVersion 设置为 28。我还将所有支持库版本更新为最新版本(这也是28)。这是我的应用程序的 gradle 构建文件:

构建工作正常,我已经在 API 级别 28 虚拟设备、Nexus 5X API 28 和 Pixel 2 XL API 28 上对其进行了测试。

但是,当我将其上传到 Google Play 控制台时,它会显示:

我知道这意味着不会对兼容的设备进行任何更改(因为之前的版本也达到了 API 级别 26)。

我尝试过在线搜索,但找不到答案。大多数搜索结果告诉你更新你的targetSdkVersion,支持库版本和compileSdkVersion到28,我已经做了。另一半是关于 minSdkVersion 和 targetSdkVersion 的区别。

我在这里做错了什么?

【问题讨论】:

  • 你知道AndroidX吗?
  • 是的,我知道,但我打算稍后再使用它
  • 我很困惑你的问题是什么?如果您不使用 API 28,这些调用可能已作为 proguard 的一部分被删除。
  • 我的问题是如何更新我的应用程序以支持 Android Pie。我会尝试禁用 proguard 看看会发生什么
  • @MorrisonChang Proguard 不会影响它。除了上面的minifyEnabled 之外,我还尝试添加useProguard false。

标签: android google-play-console android-9.0-pie


【解决方案1】:

首先,您不必将 buildTools 放在 Android P 上,这不是必需的。 其次,请确保您熟悉 Android Studio 上的 SDK。 并查看 Google 提供的迁移指南: https://developer.android.com/about/versions/pie/android-9.0-migration

【讨论】:

  • 据我所知,我已遵循该准则。我可以运行应用程序,满足第一个准则。我也在使用 Android 9 sdk(如 compileSdkVersion 所示)。
【解决方案2】:

@MorrisonChang 链接https://developer.android.com/training/basics/supporting-devices/platforms 后,我再次查看,发现有一个部分谈到了 Android Manifest。

AndroidManifest.xml 文件描述了有关您的应用的详细信息,并确定了它支持的 Android 版本。具体来说,元素的 minSdkVersion 和 targetSdkVersion 属性标识了与您的应用兼容的最低 API 级别以及您设计和测试应用所依据的最高 API 级别。

由于here,我认为 gradle 构建文件将覆盖任何与 SDK 版本相关的元素。但我仍然重新查看了我的 Android Manifest。

显然,我的 Android Manifest 有一行:

<uses-sdk android:maxSdkVersion="26"/>

这设置了我的最高 API 级别。将其增加到 28 后,它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-26
    相关资源
    最近更新 更多