配置我的项目的正确Android的API级别(Configuring the right Andro

2019-10-17 02:26发布

在我的应用程序要针对所有Android版本> = 8(需要推送通知),但我有一个很难理解的API /依存关系,我需要为我的项目设置的最佳组合。

该项目将需要基于位置的服务谷歌的API,我需要/想用ActionBarSherlock的动作条支持。

这是设置正确吗?


AndroidManifest.xml中:

(1)

 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:theme="@style/Theme.Sherlock.Light" > ... 

库:

(2)I加入android-support-v4.jar

项目属性:

(3)设置为谷歌的API 16

ActionBarSherlock:

(4)我也跟着在动作条-FAQ的视频设置了ABS作为库的项目,我有它设置为Android的16级在其项目proberties,并添加android-support-v4.jar在lib文件夹中。


我知道这是怎样的一个基本问题,但我不知道如果我选择了正确的设置。 我特别想知道或者如果(3)是正确的,如果我应该设置全局API级到8?

更新1:我也有了解的机制问题support.jar 。 如果我把我的构建目标,以最大 - 系统怎样确保高水平的功能(如片段)在较低的API(如8)工作。 是这样做自动的,还是我不得不手动编写针对支持包? 更新2关于support.jar我会知道我正在使用哪些功能,将不得不对代码support.jar。 如果我失败了,并使用一种特性,它太超前了,在较低的空气污染水平,则抛出ClassCastException ......?

任何帮助表示赞赏。 另外:我是个初学者,所以有一些背景资料的答案将高度重视:)

谢谢!

Answer 1:

这看起来的权利。 正如在ActionBarSherlock.com视频描述你希望你的步骤#3设置为最高的“工程建设目标”供您ActionBarSherlock的版本。 所以,如果你有ABS 4.1.0,你想平台4.1,API 16。

你是否还成立了ABS项目作为库? 你的项目的依赖应该有两种:

  • <你-ABS-库>的.jar
  • Android的支持,v4.jar


Answer 2:

您的设置是正确的。 如果你把它设置为8版(3)您将无法进行编译。 作为ActionBarSherlock至少需要API等级14。

但设置这样说,有一两件事要考虑到的是,你正在使用必须是Android的API API <= 8级。这是你不能使用不包含在API级别8功能,否则应用程序将崩溃ClassNotFoundException的或MethodNotFound例外。

至于片段,你应该总是选择支持库片段。 这是你应导入android.support.v4.app.Fragment,而不是android.app.Fragment。

对于更新2:

是的,它会在运行时被抛出,它使您的应用程序并不可行。 但是,果然,你可以通过检查目前的手机API级别避免这一缺陷。

例如

if(android.os.Build.VERSION.SDK_INT >= 11) {
    // API that supported in API >= 11
}
else {
    // API that supported in API < 11
}

我实际上这个验证自己。 您可以尝试使用模拟器太像运行版本8模拟器和运行代码API版本> = 8码验证。



Answer 3:

我建议你设置为API 15.我使用过与福尔摩斯动作条,一切工作正常生成SDK。



文章来源: Configuring the right Android-API level for my project