繁体   English   中英

在 build.gradle 上设置最大 sdk 版本

[英]set max sdk version on build.gradle

如何在 android studio 的 build.gradle 上设置 android max sdk 版本。

我想做一个有两种风格的应用程序,第一个将在 x~y 版本之间运行,第二个在 y+ 版本运行

在 Eclipse 之前,在 AndroidManifest.xml 我们有android:maxSdkVersion="y"但它如何在 gradle 上工作?

您不能在maxSdkVersion中设置maxSdkVersion。 实际上,由于几个问题,Google不鼓励这样做。 主要问题是,如果系统不符合应用程序中指定的maxSdkVersion ,Google Play可能会决定在更新过程中从用户设备中删除该应用程序。 例如,假设您有一台具有API级别12的设备,并安装了一个具有android:maxSdkVersion="12" ,则稍后您会收到系统更新,该更新会将您的android版本升级到API级别13 ... Google Play将卸载您的应用程式。

基本上,您不需要此设置,可以轻松地忽略它,使用targetSDkVersion属性和minSdkVersion

  1. 对于带有“版本minSdkversion ”的“处于风味1”的应用,将minSdkversion设置为x,将targetSdkVersion为y
  2. 现在,对于“ inflavor 2”应用程序,您需要确保sdk版本不会与“ inflavor 1”应用程序重叠,请将min sdk版本设置为“ z”。 否则,使用api级“ y”设备的用户将永远无法在Google Play中看到此应用

请注意这一点。

未来的Android版本(Android 2.0.1以后的版本)将在安装或重新验证期间不再检查或强制执行maxSdkVersion属性。 但是,当向用户展示可下载的应用程序时,Google Play将继续使用该属性作为过滤器。

https://developer.android.com/guide/topics/manifest/uses-sdk-element.html

我认为接受的答案是不正确的。 接受的答案说无法设置 maxSdkVersion - 这是不正确的。 仍然可以设置 android:maxSdkVersion 如此处所述https://developer.android.com/guide/topics/manifest/uses-sdk-element但开发人员必须注意警告并且应该理解为什么要这样做。 这里没有人会注意在 Play 商店中您可以一次提供多个捆绑包/包(每次更新/发布),一个捆绑包可以针对新设备,另一个针对旧设备,因此 maxSdkVersion 的第二个限制很好。 一个应用程序包具有版本代码,例如 2xyz,对于旧设备,版本代码为 1xyz,当 minSdkVersion 允许时,谷歌总是安装更高的代码。 所以开发者可以有目的地设置 maxSdkVersion 并且他知道为什么 hi 这样做。

我们的每个应用程序更新都有 2 个具有不同 app/build.gradle 的包...

对于旧设备(maxSdkVersion 在这里有意义)

defaultConfig {
    minSdkVersion 16
    maxSdkVersion 23
    targetSdkVersion 30
    versionCode 1058
    versionName "4.4.0"
}

对于新设备(不限制 maxSdkVersion,因为 googole 警告不应该使用)

defaultConfig {
    minSdkVersion 24
    targetSdkVersion 30
    versionCode 2058
    versionName "4.4.0"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM