如果Google只接受Api等级为26或更高的应用程序,为什么我仍可以发布Api低于26的应用程序?

时间:2019-08-01 17:08:40

标签: android google-play android-api-levels

最近我读了一本关于android的书,上面写着Starting with august 2019, Google play will only accept apps built using Api 26 or newer。但是最近我们发布了最低Api等级为23的android应用,并成功发布。谁能说出这种情况是什么,或者书中的文档是错误的?

3 个答案:

答案 0 :(得分:4)

他们不是在谈论minSdk,而是在谈论 targetSdk compileSdk

请注意,我使用“或”是因为您的targetSdk不能高于您的compileSdk

增加targetSdk编号时,必须遵守新的api和规则,但是使用旧的compile / target sdk将使您以与早期版本中相同的方式使用功能(安全漏洞的根本原因之一)。这就是为什么他们设置了限制,所以每个应用程序都被迫使用“新的做事方式”而不是旧的方式。

例如,在Android 5.0之前,安装应用时会授予权限,但后来更改了权限,因此现在您必须在运行时询问权限。如果您针对低于Android 5.0的Sdk api定位,则无需执行任何操作,它也可以在较新的设备上运行。但是,如果您将api定位为高于Android 5的api,则必须请求运行时权限,否则更新的sdk代码将引发异常。

答案 1 :(得分:1)

这意味着您的 target API必须是其最低要求(在本例中为28),但是您仍然可以将自己的最低API设置为您想要允许向后兼容的任何值。

  

上传APK时,它需要满足Google Play的目标API级别要求。从2019年8月1日开始,Google Play要求新应用必须至少以Android 9.0(API级别28)为目标,并且应用更新必须从2019年11月1日开始以Android 9.0为目标。在这些日期之前,新应用和应用更新必须至少以Android为目标8.0(API级别26)。

https://developer.android.com/distribute/best-practices/develop/target-sdk

我有一个定位为28的应用程序,但是我想要的最低API级别为18。它仍然允许我上载该应用程序,因为它定位为28。

答案 2 :(得分:1)

这意味着您必须在 build.gradle 文件中设置

targetSdkVersion 28  //or later

Official doc

  

上传APK时,它需要满足Google Play的目标API级别要求。 从2019年8月1日起,Google Play要求新应用至少以Android 9.0( API级别28 )为目标,并且应用要从 11月1日更新为Android 9.0。 ,2019年。在这些日期之前,新应用和应用更新必须至少针对Android 8.0(API级别26)。

请记住:

minSdkVersion <= targetSdkVersion <= compileSdkVersion

如果您想了解有关minSdk,targetSdk和compileSdk的更多详细信息,建议您阅读this blog