【发布时间】:2013-06-07 13:37:56
【问题描述】:
我正在学习 Sherlock Action Bar 的一个简单教程。我遵循了每一步。问题是我在 2.1 到 2.3 版本上遇到错误,而在 4.0 到 4.1 版本上工作正常。
我正在使用 Android SDK 工具 20.0.3 和 Eclipse 版本 4.2.0
setContentView(R.layout.activity_main);
在上面的代码中它写着R cannot be resolved to a variable。
还有一些错误如下:
[2012-09-04 22:18:21 - Action Bar demo] C:\Users\Karthick\Desktop\Project libs\JakeWharton-ActionBarSherlock-88fc341\library\res\values-v14\abs__styles.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar'.
[2012-09-04 22:18:21 - Action Bar demo] C:\Users\Karthick\Desktop\Project libs\JakeWharton-ActionBarSherlock-88fc341\library\res\values-v14\abs__styles.xml:6: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.ActionBar.Solid'.
[2012-09-04 22:18:21 - Action Bar demo] C:\Users\Karthick\Desktop\Project libs\JakeWharton-ActionBarSherlock-88fc341\library\res\values-v14\abs__styles.xml:8: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.Light.ActionBar'.
[2012-09-04 22:18:21 - Action Bar demo] C:\Users\Karthick\Desktop\Project libs\JakeWharton-ActionBarSherlock-88fc341\library\res\values-v14\abs__styles.xml:10: error: Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Holo.Light.ActionBar.Solid'.
为了更好地理解,这里有一些图片:
我的清单文件是:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.action.bar"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Google"></activity>
</application>
有人帮助我修复 Android 2.3 中的这些错误
相同的代码在 Android 4.0.3 中运行良好
【问题讨论】:
-
我认为@Kaediil 是正确的:将项目的构建目标更改回 4.0.3 或更高版本。无法解决
R的原因是由于 Gingerbread 中没有 Holo 主题相关样式,您的资源将无法编译。构建目标与您的应用程序将兼容的设备无关;这一切都在清单中用 min/maxSdkVersion 定义。 -
@MH 所以这里是 Android 4.0.3 的屏幕截图twitpic.com/ar41l2/full。没有错误!!
-
@MH 我应该如何处理与 Holo 主题相关的样式?通过将 Android 项目设置为 4.0.3 是否可以在 2.3 设备上运行??
-
不要直接使用 Holo 主题和样式,而是使用 ActionBarSherlock 提供的主题。这将默认为 ICS+ 上的本机资源,但在旧平台上包含这些资源。请注意,ABS 仅向后移植 ActionBar 所需的 Holo 主题/样式。查看 HoloEverwhere 项目以获得完整的反向移植。
-
谢谢@MH先生。我现在明白了:)
标签: android android-actionbar actionbarsherlock