2012-09-04 7 views
5

Ich folgte einem einfachen Tutorial der Sherlock Action Bar. Ich folgte jedem Schritt. Das Problem ist, ich bekomme Fehler auf den Versionen 2.1 bis 2.3 und funktioniert gut auf 4.0 bis 4.1.
Ich Android SDK Tools 20.0.3 und Eclipse Version 4.2.0funktioniert auf 4.0.3 und 4.1 aber Fehler auf 2.1,2.2 und 2.3 - Sherlock Action Bar

setContentView(R.layout.activity_main); 

In obigem Code sagt, es R cannot be resolved to a variable. und einige weitere Fehler sind wie folgt:

[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'. 

Zum besseren Verständnis sind hier einige Bilder:

enter image description here

enter image description here

Mein Manifest-Datei ist:

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

Jemand mir helfen, diese Fehler in Android 2,3

Der gleiche Code in Android funktioniert gut 4.0.3

+1

Ich denke @Kaediil korrekt ist: das Build-Ziel Ihres Projekts 4.0.3 oder später wieder ändern. Der Grund dafür, dass "R" nicht aufgelöst werden kann, liegt darin, dass Ihre Ressourcen aufgrund der Holo-Designs nicht zusammengefügt werden können, die in Gingerbread nicht verfügbar waren. Das Build-Ziel hat nichts damit zu tun, mit welchen Geräten Ihre App kompatibel ist. Das ist alles im Manifest mit min/maxSdkVersion definiert. –

+0

@MH so hier ist der Screenshot http://twitpic.com/ar41l2/full für Android 4.0.3. Keine Fehler!! –

+0

@MH Und was soll ich mit Holo Thema verwandten Stilen tun? Wird es auf 2.3 Geräten funktionieren, indem Android-Projekt auf 4.0.3 gesetzt wird? –

Antwort

5

Das Problem ist, ich bekomme Fehler auf den Versionen 2.1 bis 2.3 und funktioniert in Ordnung auf 4.0 bis 4.1.

=> Wie Sie erwähnt haben dies in 4.0 und 4.1 funktioniert prima, aber nicht in 2.x Version, ich bin sicher, dass Sie kompatibel ActionBarSherlock Thema in Ihrem style.xml sind vergessen:

Wenn Sie haven ‚t enthalten styles.xml mit folgenden Werten, dann tun es:

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

Wie Sie oben über genannten Werte-v11 und Werte-v14 für styles.xml, können Sie erstellen styles.xml in sowohl der Ordner mit unten Werte:

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

Ja .. Es funktioniert! Danke @Paresh –

+0

@DroidLearner Froh, dass es funktioniert hat. Prost :) –

0

Ich bin bei der Festsetzung ein wenig verwirrt, wenn ich auf dem Bildschirm Schuss aussehen. Zunächst sollte Ihr Projekt Android 4.0.3 und nicht 2.3 in den Android-Bibliotheken verwenden. Sie haben 2.3 mit der Zeile minSDKVersion in Ihrem Manifest bereits abgedeckt. Zweitens kann ich es nicht genau sagen, aber ich nehme an, dass Sie in den Eigenschaften für Ihr Projekt Ihr Hauptprojekt von der ActionBarSherlock-Bibliothek abhängig gemacht haben?

+0

Ja, ich habe Android 4.0.3 verwendet und es gab keine Fehler im Projekt. Dann habe ich mein Build-Ziel auf Android 2.3.3 geändert, um Gingerbread-Geräte zu unterstützen. Sie sagten, dass "Sie bereits 2.3 mit der MinSDKVersion-Zeile in Ihrem Manifest abdecken". Mein Zweifel ist, dass es auf 2.3 Geräten funktioniert, ohne das Build-Ziel auf Android 2.3 zu ändern ??? –

+0

Ja, es funktioniert auf 2.3-Geräten, solange Sie keine API-Aufrufe verwenden, die nicht in 2.3 enthalten sind. – Kaediil

+0

Danke Kumpel! :)) –

Verwandte Themen