当最新版本具有更高的minSDKversion级别时,如何修复旧版Android应用程序中的错误?

时间:2013-05-31 00:05:01

标签: android google-play

假设我发布了一个需要API Level 2的Android应用程序,我在清单中有以下内容。

android:versionCode="1"
android:versionName="1.0"
android:minSdkVersion=2

然后我创建了一个主要更新,现在需要API级别3

android:versionCode="3"
android:versionName="2.0"
android:minSdkVersion=3

现在如果我发现1.0版中我想修复的错误怎么办?可能仍有1.0版用户拥有不支持API级别3的设备。

我可以发布以下内容

android:versionCode="4"
android:versionName="1.1"
android:minSdkVersion=2

但随后所有原来的2.0用户将降级为1.1。我是否只需要同时发布更新的API 3级版本?

android:versionCode="5"
android:versionName="2.1"
android:minSdkVersion=3

有没有更好的方法来处理这种情况?我是否应该将我的版本代码值分隔开以允许像这样的中间更新?

2 个答案:

答案 0 :(得分:1)

Should I instead space out my version code values to allow for intermediate updates like this?

此。如果您发布具有更高版本要求的更新,并且您打算继续支持旧版本的用户,则最好在版本代码中留出足够的空间来独立更新这两个版本。

我想说实现此目标的最佳方法是将您要定位的Android版本作为版本代码的一部分包含在内,或者从版本名称中获取版本代码(如果您的版本名称提供了足够的更新空间) )。

android:versionCode="2001"
android:versionName="1.0"
android:minSdkVersion=2

android:versionCode="3001"
android:versionName="2.0"
android:minSdkVersion=3

android:versionCode="2002"
android:versionName="1.1"
android:minSdkVersion=2

android:versionCode="3002"
android:versionName="2.1"
android:minSdkVersion=3

android:versionCode="1000"
android:versionName="1.0"
android:minSdkVersion=2

android:versionCode="2000"
android:versionName="2.0"
android:minSdkVersion=3

android:versionCode="1001"
android:versionName="1.1"
android:minSdkVersion=2

android:versionCode="2001"
android:versionName="2.1"
android:minSdkVersion=3

答案 1 :(得分:0)

您可以将maxSdkVersion用于此目的。对于1.1版,您可以这样做:

android:versionCode="4"
android:versionName="1.1"
android:minSdkVersion=2
android:maxSdkVersion=2

maxSdkVersion已被弃用,Google不推荐使用,但它仍然应该针对Google Play中具有API级别3的设备过滤1.1版(尽管他们仍然可以加载它,但我不担心这一点)。 有关此属性的详细信息,请查看docs

要获得其他答案,请检查here