使用最低SDK级别8和目标SDK级别15创建应用程序?

时间:2013-10-11 22:58:57

标签: android-actionbar actionbarsherlock android-4.2-jelly-bean android-support-library android-2.3-gingerbread

背景

我正在努力重新使用我的旧应用程序来使用操作栏,但是我当然希望仍然会成为2.3.3用户的大型焦点组。

问题:

我的应用程序在我的新Jelly Bean手机上工作正常,但在我的旧版GingerBread手机上崩溃,并在“getActionBar()等等时出现NoSuchMethodException。

我知道这种情况正在发生,因为手机不支持它..但我不明白为什么因为我使用的是android-support-v4.jar ,我可以看到方法并且代码正常,没有任何编译错误。

我的研究:

我已阅读其他帖子,他们说将你的minSdkVersion更改为11,它应该可以正常工作,但我希望支持旧设备

我还在以前的项目中使用了神奇的actionbarsherlock库,并没有出现这个问题......

详细信息:

在我的android SDK文件中,我有

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

我正在使用Android Studios,因此我将项目的构建目标设置为4.2.2(我不确定这是否正确)..

我的Android清单文件也有:

android:theme="@style/AppTheme">

我的res文件夹中有2个文件夹 - 一个是值和值-v11

值在其样式文件中包含此内容:

<resources>
<style name="AppBaseTheme" parent="@android:style/Theme.NoTitleBar">
</style>
<style name="AppTheme" parent="AppBaseTheme">
</style>
</resources>

和values-v11在其样式文件中包含此内容:

<resources>
<style name="AppTheme" parent="android:Theme.Holo.Light" />
<style name="MenuTheme" parent="android:Theme.NoTitleBar" />
</resources>

1 个答案:

答案 0 :(得分:0)

将“getActionBar()”更改为“getSupportActionBar()”,它应该可以正常工作。 另外,请确保您的Activity是子类化SherlockActivity或SherlockFragmentActivity。

在API级别11中添加了getActionBar(),ActionBarSherlock添加了getSupportActionBar()方法以实现向后兼容。