android - 使用更高的sdk编译android项目

标签 android sdk

我有一个关于 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/

相关文章:

android - 在 Phonegap 应用程序的 iOS/Android 设备中,按钮 css 的变化非常缓慢

c# - 无法加载 DLL '__Internal'

iphone - 什么是 cocoa 工作室

iPhone UIPickerView 手势

PHP GAE 无法在本地运行 SDK

android - 在 Android Studio 中使用预构建的共享库

android - 如何扩展 AdapterView 使其表现得像由适配器动态填充的 LinearLayout

java - 绑定(bind)到 Android 库中定义的远程服务失败

android - 我如何将 Font Awesome (4.7) 与 Nativescript (3.4.2) 和 Angular (5) 一起使用

ios - 比较sqlite表中的整数?