为我的项目配置正确的Android API级别

为我的项目配置正确的Android API级别,android,actionbarsherlock,Android,Actionbarsherlock,在我的应用程序中,我想针对所有Android版本>=8(需要推送通知),但我很难理解项目设置所需的API/依赖项的正确组合 该项目将需要谷歌API的位置为基础的服务,我需要/想使用的ActionBar支持 这个设置正确吗 AndroidManifest.xml: (一) ... Libs: (二) 我添加了android-support-v4.jar 项目属性: (三) 设置为谷歌API 16 ActionBarSherlock: (四) 我跟随ActionBar常见问题解答的视频将ABS

在我的应用程序中,我想针对所有Android版本>=8(需要推送通知),但我很难理解项目设置所需的API/依赖项的正确组合

该项目将需要谷歌API的位置为基础的服务,我需要/想使用的ActionBar支持

这个设置正确吗


AndroidManifest.xml:

(一)


...
Libs:

(二) 我添加了
android-support-v4.jar

项目属性:

(三) 设置为谷歌API 16

ActionBarSherlock:

(四) 我跟随ActionBar常见问题解答的视频将ABS设置为一个库项目,并在其项目proberties中将其设置为Android Level 16,并在其lib文件夹中添加了
Android-support-v4.jar


我知道这是一个基本问题,但我不确定我是否选择了正确的设置。我特别想知道(3)是否正确,或者我是否应该将整个API级别设置为8

更新1:我在理解
support.jar的机制方面也有问题。如果我将构建目标设置为最大值,那么系统如何确保高级功能(如片段)在较低的API(如8)中工作。这是自动完成的,还是必须针对支持包手动编写代码?
更新2关于
support.jar
我必须知道我在使用什么功能,并且必须针对support.jar编写代码。如果我失败了,并且使用了一个过于高级的特性,那么在较低的API级别上就会抛出ClassCastException

谢谢你的帮助。另外:我是一名初学者,因此带有一些背景信息的答案将受到高度重视:)


谢谢

看起来不错。正如ActionBarSherlock.com上的视频所述,您希望将步骤3设置为适用于您的ActionBarSherlock版本的最高“项目构建目标”。如果你有ABS 4.1.0,你需要平台4.1,API 16

您是否也将ABS项目设置为一个库?项目的依赖项应同时具有以下两个方面:

  • .jar
  • android-support-v4.jar

我建议您将构建SDK设置为API 15。我在Sherlock ActionBar中也使用了这个功能,一切正常。

您的设置是正确的。如果您将其设置为版本8(3),您将无法编译它。作为ActionBarSherlock,它至少需要api级别14

但是这样设置时,需要考虑的一点是,您使用的所有Android API必须是API=11){ //API>=11中支持的API } 否则{ //API<11中支持的API }

事实上,我自己也证实了这一点。您也可以尝试使用Emulator来验证它,比如运行版本8 Emulator,并运行API版本>=8代码的代码

感谢您的回答-我在理解support.jar时仍然有问题。如果我将构建目标设置为最大值,那么系统如何确保高级功能(如片段)在较低的API(如8)中工作。这是自动完成的,还是我必须针对支持包编写代码?如果是“自动完成的”,Eclipse将帮助您使用适当的API。换句话说,如果为API 10+引入了一个类或方法,它会给你一个错误,告诉你这对你的最小API无效。@jangroth你成功地构建了一个简单的“Hello World”应用程序了吗?实际上,有很多。你的意思是,从我的问题的层次上看不出来,是吗?;-)哈,只是确保你没有在第一个应用程序上把头发拔出来。了解什么会破坏您正在学习的API稍微不那么令人沮丧。你更了解发生了什么事吗?或者你还有问题(需要帮助)?谢谢你提供这条信息。我用这种不确定性更新了这个问题。
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16" />

<application
    android:theme="@style/Theme.Sherlock.Light" >
    ...
if(android.os.Build.VERSION.SDK_INT >= 11) {
    // API that supported in API >= 11
}
else {
    // API that supported in API < 11
}