我有一个关于 android sdks 的问题。我正在开发一个 Android 应用程序,它必须在 Android 2.3.3 及更高版本上运行。
因为我需要使用“android-support-v7-appcompat”库,所以我需要用Android 4或更高版本编译项目。如果我尝试使用 Android 2.3.3 进行编译,则项目不会编译。
那么如果我用 Android 4 编译项目会怎样?它可以在 Android 2.3.3 上运行吗?
当然我会在 AndroidManifest 中设置。
最佳答案
在任何情况下,您都应该在 list 文件中正确定义 minSDK 和 targetSDK。例如,当您使用 API 19 (KitKat) 进行编译并将其设置为 minSDK API 10 时,一切都应该适用于您的 2.3.3 Android。
但是,如果您在代码中使用了一些在 2.3.3 上不可用的方法和常量,您将在 Eclipse 中收到警告/错误(我打赌在 Android Studio 中也是如此)。例如:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
// before JELLY_BEAN_MR2 code;
// methods, constants available for example from API 1
} else {
// after JELLY_BEAN_MR2 code
// here are new methods,constants available from GINGERBREAD_MR1 and after
}
所以在这里,您的应用程序将根据其运行的 Android 版本以两种不同的方式执行某些操作...如果您不使用等于或更高版本的 JELLY_BEAN_MR2 API 进行编译,您甚至无法编译,因为之前,常量 JELLY_BEAN_MR2 在 API 中不可用...但是,当您使用更高的 API 进行编译时,所有内容都将被正确编译,并且应用程序将在早期版本上正常运行而不会出现问题。
如果您留下这样的代码,将出现此警告,但调用方法之前的@SuppressLint("NewApi") 应该将其删除而不会出现进一步的问题。
希望它有所帮助,现在很清楚了.. ;)
干杯
关于android - 使用更高的sdk编译android项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20213268/