【问题标题】:Creating app with min SDK level 8 and target SDK level 15?创建具有最低 SDK 级别 8 和目标 SDK 级别 15 的应用程序?
【发布时间】:2013-10-11 22:58:56
【问题描述】:

背景:

我正在重新设计我的一个旧应用程序以使用操作栏,但是我当然仍然希望吸引一个相当大的焦点小组,即 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:theme="@style/AppTheme">

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

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

<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>

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-03
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多