意外的向后兼容性或为什么我的应用程序崩溃?

时间:2013-07-26 01:52:23

标签: android

我正在开发一个minSdkVersion为9,targetSdkVersion为17的应用程序。我正在执行一些Bitmap像素操作,因此我在某一时刻调用函数{{ 1}}为Bitmpap.setHasAlpha()启用Alpha通道,这样我就可以将某些(并且只有某些!)像素设置为透明。

问题是Bitmap仅在API 12中添加 - 这就是神秘的地方.Lint并没有抱怨我对这个电话的使用(嗯......作为一般规则。曾经有一段时间Eclipse会抱怨它,然后当我重新启动它时,一切都恢复正常),当我在几个不同的Gingerbread(2.3.3和2.3.5)设备上运行我的应用程序时,一切都运行正常。

所以...这个问题听起来很奇怪,为什么我的应用程序崩溃了呢?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:-1)

minSdkVersion 是一项检查,旨在防止在没有与minSdk相对应的框架的旧设备上下载和安装应用。

targetSdkVersion 用于确定是否需要启用任何兼容性“变通办法”以确保行为与targetSdk

中的行为一致

通过设置 minSdkVersion=9 ,您发出允许姜饼设备下载并安装您的应用的信号。通过设置 targetSdkVersion=17 您发出信号,表示会调用任何变通办法,以允许设备尽可能多地保留以后的sdk功能。

同样如Pulkits' answer中所述, setHasAlpha() API似乎也存在于2.3.4 Android框架中,尽管当时没有正式记录。