我发现我可以用更高的sdk目标(比方说3.0)来构建android apk,但我仍然可以在更低的设备上运行我的应用(比方说2.1)。我能知道为什么吗?仅当我将android:minSdkVersion
设置为特定数字时,仍会停止执行。
如果我在我的应用程序中使用像Fragment这样的最新功能,但在较低平台的设备上运行它,这有意义吗?如果我真的这样做了,我的应用程序会发生什么?我的应用会崩溃吗?
我在处理admob时意识到了这一点,因为我在Android 4.1上编译了它,但能够在device 2.1上运行它,这真的让我很惊讶。
发布于 2012-07-05 15:35:29
为了在sdk低于3.0的设备中使用片段,您必须包含Android Support v4库作为引用库。这让您可以使用Android最新发布的sdk中引入的Fragment等功能。保持与老式Android设备的复古兼容性非常重要,因为这些设备的扩散太多了。
有关安卓支持v4库的一些参考资料,您可以查看:
http://developer.android.com/reference/android/support/v4/app/package-summary.html
还有这个:
http://developer.android.com/tools/extras/support-library.html
否则,您不能在低于3.0 ( API级别11 )的sdk中使用Fragment。
发布于 2012-07-05 15:35:48
使用您的AndroidManifest.xml并使用声明声明最低版本和目标SDK版本,您的apk应该根据最低SDK版本运行:
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14">
发布于 2012-07-05 15:36:16
我能知道为什么吗?
这要归功于android:minSdkVersion
使用
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="11" />
如果我在我的应用程序中使用像Fragment这样的最新功能,但在较低平台的设备上运行它,这有意义吗?如果我真的这样做了,我的应用程序会发生什么?我的应用会崩溃吗?
当它使用旧平台中没有的新SDK功能时,它将崩溃。
https://stackoverflow.com/questions/11339653
复制相似问题