2013-02-07 6 views
26

Ich sehe einen Fehler, den ich noch nie zuvor mit Android gesehen habe, der einige meiner Layout-Dateien vom Rendern in Eclipse abhält. Sie werden zur Laufzeit gut dargestellt.Android-Layoutfehler: "Ressourcen-ID <res_id> ist nicht vom Typ STYLE (statt attr)"

Der Fehler, der in dem grafischen Layout-Editor zeigt (und mein Fehlerprotokoll) ist: "Resouce id 0x1010081 nicht vom Typ STYLE ist (statt attr)"

ich für Ressource-ID gesucht habe 0x1010081 in meine R-Dateien, und ich kann sie nicht finden, also vermute ich, irgendwie habe ich einen Konflikt mit einem eingebauten Android-ATTR. Ich habe auch überprüft, dass alle meine Stilattribute unten auf tatsächliche Stile und nicht auf Attribute zeigen. Jede Hilfe wird geschätzt.

Hier ist meine volle Layout-Code:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/bkg_light" 
    android:padding="@dimen/padding_med" > 

    <RelativeLayout 
     android:id="@+id/relativeLayout_activity" 
     android:layout_width="fill_parent" 
     android:layout_height="@dimen/button_height" 
     android:background="@drawable/xml_button" 
     android:padding="@dimen/padding_med" > 

     <TextView    
      style="@style/text_large_bold_white" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:text="@string/activity" /> 

     <TextView 
      android:id="@+id/textView_activity" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="@dimen/margin_med" 
      android:layout_toLeftOf="@+id/textView_arrow_right_start_date" 
      android:text="@string/none_selected"/> 

     <TextView 
      android:id="@+id/textView_arrow_right_start_date" 
      style="@style/arrow_right" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" /> 
    </RelativeLayout> 

    <!-- kv Duration --> 

    <RelativeLayout 
     android:id="@+id/relativeLayout_duration" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/relativeLayout_activity" 
     android:layout_marginTop="@dimen/margin_large" 
     android:background="@drawable/xml_button"> 

     <TextView 
      android:id="@+id/textView_duration" 
      style="@style/text_large_bold_white" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:text="@string/duration_lc" 
      android:paddingLeft="@dimen/padding_med"/> 

     <Spinner 
      android:id="@+id/spinner_duration" 
      android:layout_width="wrap_content" 
      android:layout_height="@dimen/button_height" 
      android:layout_alignParentRight="true" 
      android:entries="@array/array_durations" 
      android:prompt="@string/duration_lc" 
      android:spinnerMode="dropdown" 
      android:clickable="false"/> 
    </RelativeLayout> 

</RelativeLayout> 

Und hier ist mein styles.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="arrow_right"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_xxlarge</item> 
     <item name="android:text">@string/arrow_right</item> 
    </style> 

    <style name="button_blue"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:background">@drawable/selector_button_blue</item> 
     <item name="android:padding">@dimen/padding_med</item> 
    </style> 

    <style name="button_blue_small"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:background">@drawable/selector_button_blue_small</item> 
     <item name="android:padding">@dimen/padding_med</item> 
    </style> 

    <style name="button_dark"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">@color/white</item> 
     <item name="android:background">@drawable/selector_button_dark</item> 
     <item name="android:padding">@dimen/padding_med</item> 
    </style> 

    <style name="button_light"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">@color/black</item> 
     <item name="android:background">@drawable/selector_button_light</item> 
     <item name="android:padding">@dimen/padding_med</item> 
    </style> 

    <style name="button_light_small"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">@color/black</item> 
     <item name="android:textSize">@dimen/text_small</item> 
     <item name="android:background">@drawable/selector_button_light</item> 
     <item name="android:padding">@dimen/padding_small</item> 
    </style> 

    <style name="text_small_gray_light"> 
     <item name="android:textSize">@dimen/text_small</item> 
     <item name="android:textColor">@color/gray_light</item> 
    </style> 

    <style name="text_med_bold_gray_light"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_med</item> 
     <item name="android:textColor">@color/gray_light</item> 
    </style>  

    <style name="text_large_bold_white"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_large</item> 
    </style> 

    <style name="text_large_bold_black"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_large</item> 
     <item name="android:textColor">@color/black</item> 
    </style> 

    <style name="text_large_bold_gray_dark"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_large</item> 
     <item name="android:textColor">@color/gray_dark</item> 
    </style> 

    <style name="text_large_bold_gray_light"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_large</item> 
     <item name="android:textColor">@color/gray_light</item> 
    </style> 

    <style name="text_large_bold_white"> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textSize">@dimen/text_large</item> 
     <item name="android:textColor">@color/white</item> 
    </style> 

    <style name="text_large_white"> 
     <item name="android:textSize">@dimen/text_large</item> 
     <item name="android:textColor">@color/white</item> 
    </style> 
</resources> 

Und hier ist meine Gewohnheit theme.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="Theme.P90X" parent="@style/Theme.Sherlock"> 
     <item name="android:textColor">#ffffffff</item> 
    </style> 
</resources> 
+1

Könnten Sie den vollständigen Fehlerprotokoll und Ihre styles.xml anhängen? –

+0

@JustinJasmann: styles.xml aufgelistet. Das einzige, was ich bekomme, ist das oben aufgeführte. –

+1

Warum haben Sie die richtige Antwort nicht akzeptiert? – John

Antwort

71

Ich habe auch dieses Problem, mit der gleichen Ressource ID angezeigt. Es verschwindet, wenn ich android:spinnerMode zu "dialog" ändere, also vermute ich, dass es kein Problem mit Ihrem Code ist.

Die ID bezieht sich auf das Android-Attribut spinnerStyle. Siehe die doc für R.attr

ich eine Abhilfe gefunden, ersetzen nämlich

android:spinnerMode="dropdown"

mit

android:spinnerStyle="@android:style/Widget.Spinner.DropDown".

+3

Das funktioniert perfekt. Vielen Dank! OP sollte deine als die richtige Antwort anrechnen. – pmont

+5

Hinweis @android: style/Widget.Spinner.DropDown erfordert API-Ebene 11 –

+1

Während es den Fehler für mich loswird, bekomme ich zur Laufzeit "Fehler beim Aufblasen der Klasse android.widget.Spinner". – Patrick

4

Haben Sie versucht, zu ändern die einzelnen style -Eigenschaften in etwa so aussehen:

style="?attr/text_large_bold_white" 
+0

Die Stile in meinem Layout sind benutzerdefinierte Stile, die in styles.xml definiert sind. Ich habe das im Beitrag aufgelistet. –

0

Löschen Sie alle style Elemente und fügen Sie sie dann nacheinander hinzu und prüfen Sie immer, ob es noch rendert. So kann man zumindest herausfinden, wem man die Schuld gibt.

+0

Ich habe versucht, alle Stil-Tags zu entfernen, und ich sehe immer noch den Fehler Vielleicht gibt es einen Konflikt mit einem System-Stil? –

+0

Haben Sie vielleicht ein benutzerdefiniertes Thema, das Stile indirekt hinzufügt? – Ridcully

+0

Ich habe ein benutzerdefiniertes Thema, dessen Eltern Theme.Sherlock ist. Es ist jedoch ziemlich einfach. Ich habe es dem Posting hinzugefügt. –

0

Als Google zeigt auf diese Seite für diesen Fehler, und im Interesse der Nachwelt ...

In meinem Fall in einer Laune, ich geschlossen und Eclipse wieder geöffnet und Boom der Fehler verschwunden war und Eclipse hatte kein Problem beim Rendern der Vorschau.

Obwohl ich stark glaube, dass dies nicht für alle der Fall sein kann.

Wenn Sie glauben, Sie haben alles richtig getan, ich denke, es wird nicht weh tun Neustart Eklipse.

1

Wie JulianSymes sagt, das Problem ist

android:spinnerMode="dropdown" 

Seine Lösung (Ersatz für android:spinnerStyle="@android:style/Widget.Spinner.DropDown") auf meinem Handy läuft aber nicht auf meinem Tablet

Meine Lösung ist einfach: THE LINE DELETE.

spinnerMode="dropdown" ist standardmäßig daher ist es unnötigen