it-swarm.com.de

Android-Layoutfehler: "Ressourcen-ID <Res_id> hat nicht den Typ STYLE (statt attr)"

Ich sehe einen Fehler, den ich noch nie bei Android gesehen habe und der verhindert, dass einige meiner Layoutdateien in Eclipse gerendert werden. Sie rendern zur Laufzeit gut.

Der Fehler, der im grafischen Layout-Editor (und meinem Fehlerprotokoll) angezeigt wird, lautet: "Resouce-ID 0x1010081 ist nicht vom Typ STYLE (statt attr)"

Ich habe in meinen R-Dateien nach der Ressourcen-ID 0x1010081 gesucht und kann sie nicht finden. Ich vermute, dass ich möglicherweise einen Konflikt mit einem in Android integrierten attr habe. Ich habe auch bestätigt, dass alle unten aufgeführten Stilattribute auf tatsächliche Stile und nicht auf attr verweisen. Jede Hilfe geschätzt.

Hier ist mein vollständiger Layoutcode:

<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 meine 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 mein benutzerdefiniertes 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>
26
Karim Varela

Ich habe auch dieses Problem mit der gleichen Ressourcen-ID. Es verschwindet, wenn ich Android:spinnerMode in "dialog" ändere. Ich vermute, es ist kein Problem mit Ihrem Code.

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

Ich habe einen Workaround gefunden, nämlich ersetzen

Android:spinnerMode="dropdown"

mit

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

71
JulianSymes

Haben Sie versucht, die jeweiligen Stileigenschaften so zu ändern:

style="?attr/text_large_bold_white"
4
D. Tran

Wie JulianSymes sagt, ist das Problem

Android:spinnerMode="dropdown"

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

Meine Lösung ist einfacher: DELETE THE LINE.

spinnerMode="dropdown" ist standardmäßig eingestellt, daher nicht erforderlich

1
Carlos Gómez

Löschen Sie alle style-Elemente, fügen Sie sie nacheinander hinzu und prüfen Sie immer, ob sie noch angezeigt werden. So können Sie zumindest herausfinden, wer schuld ist.

0
Ridcully

Da Google für diesen Fehler und für die Nachwelt auf diese Seite verweist ...

In meinem Fall, in einer Laune, geschlossene und wieder geöffnete Eclipseund Boom der Fehler war weg und Eclipse hatte kein Problem, die Vorschau zu rendern.

Ich glaube jedoch fest daran, dass dies nicht für alle der Fall sein kann.

Wenn Sie das Gefühl haben, dass Sie alles richtig gemacht haben , denke ich, wird es nicht schaden, Eclipse neu zu starten.

0
Samuel