Android 在4.0.3和4.1上工作,但在2.1、2.2和2.3上出错-夏洛克动作栏

Android 在4.0.3和4.1上工作,但在2.1、2.2和2.3上出错-夏洛克动作栏,android,android-actionbar,actionbarsherlock,Android,Android Actionbar,Actionbarsherlock,我正在学习《神探夏洛克行动吧》的一个简单教程。我跟着每一步走。问题是我在版本2.1到2.3上出错,在版本4.0到4.1上工作正常。 我正在使用Android SDK工具20.0.3和Eclipse版本4.2.0 setContentView(R.layout.activity_main); 在上面的代码中,它表示R不能解析为变量。 还有一些错误如下: [2012-09-04 22:18:21 - Action Bar demo] C:\Users\Karthick\Desktop\Proje

我正在学习《神探夏洛克行动吧》的一个简单教程。我跟着每一步走。问题是我在版本2.1到2.3上出错,在版本4.0到4.1上工作正常。
我正在使用Android SDK工具20.0.3和Eclipse版本4.2.0

setContentView(R.layout.activity_main);
在上面的代码中,它表示
R不能解析为变量
。 还有一些错误如下:

 [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中运行良好

当我看到你的屏幕截图时,我有点困惑。首先,您的项目应该使用Android 4.0.3,而不是Android库中的2.3。您已经在清单中使用minSDKVersion行覆盖了2.3。第二,我不太清楚,但我假设在项目的属性中,您使主项目依赖于ActionBarSherlock库

问题是我在版本2.1到2.3上出现了错误,并且工作正常 在4.0到4.1之间可以

=>正如您所提到的,这在4.0和4.1中运行良好,但在2.x版本中运行不正常,我确信您忘记了在style.xml中包含兼容的ActionBarSherlock主题:

如果没有使用以下值包含style.xml,请执行以下操作:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar"/>

如上所述,对于styles.xml,您可以使用以下值在这两个文件夹中创建styles.xml:

<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"/>


我认为@Kaediil是正确的:将项目的构建目标更改回4.0.3或更高版本。无法解决
R
的原因是,由于姜饼中没有全息主题相关的样式,您的资源将无法编译。构建目标与您的应用程序将与哪些设备兼容无关;这都是在清单中用min/maxSdkVersion定义的。@MH所以这里是Android 4.0.3的屏幕截图。没有错误@MH我该如何处理全息主题相关风格??通过将Android project设置为4.0.3,它能在2.3设备上工作吗?不要直接使用Holo主题和样式,而是使用ActionBarSherlock提供的主题。这将默认为ICS+上的本机资源,但旧平台上包含的资源除外。请注意,ABS仅支持ActionBar所需的全息主题/样式。看看HoloEverwhere项目的完整后台。谢谢@MH先生。我现在明白了:)是的,我使用的是Android 4.0.3,项目中没有错误。然后,我将构建目标更改为Android 2.3.3以支持姜饼设备。你说“你已经在清单中用minSDKVersion行覆盖了2.3。”我的疑问是,在不将构建目标更改为Android 2.3的情况下,它能否在2.3设备上工作?是的,只要你不使用2.3中没有的任何API调用,它就能在2.3设备上工作。