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