使用更高的sdk编译android项目

时间:2013-11-26 09:38:18

标签: 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中设置。

2 个答案:

答案 0 :(得分:1)

在任何情况下,您都应该在清单文件中正确定义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”)在调用方法之前应该删除它而没有其它问题。

希望它有所帮助,现在很清楚......;)

干杯

答案 1 :(得分:0)

取决于您选择的目标:

    <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="19" />