webdevqa.jp.net

Androidレイアウトエラー: "リソースID <res_id>はタイプSTYLEではありません(代わりにattr)"

Android)でこれまでに見たことのないエラーが表示され、一部のレイアウトファイルがEclipseでレンダリングされなくなりました。実行時に正常にレンダリングされます。

グラフィカルレイアウトエディタ(および私のエラーログ)に表示されるエラーは、「リソースID 0x1010081はタイプSTYLEではありません(代わりにattr)」です。

RファイルでリソースID0x1010081を検索しましたが、見つかりません。おそらく、組み込みのAndroid attr。と競合しているのではないかと思います。また、以下のすべてのスタイル属性が属性ではなく実際のスタイルを指していることを確認しました。

これが私の完全なレイアウトコードです:

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

そして、これが私の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>

そして、これが私のカスタム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>
27
Karim Varela

同じリソースIDが表示され、この問題も発生します。 Android:spinnerMode"dialog"に変更すると消えるので、コードに問題はないと思います。

問題のIDはAndroid属性spinnerStyleを参照しています。 R.attr のドキュメントを参照してください

回避策、つまり置換を見つけました

Android:spinnerMode="dropdown"

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

72
JulianSymes

各スタイルプロパティを次のようなものに変更してみましたか?

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

JulianSymesが言うように、問題は

Android:spinnerMode="dropdown"

彼の解決策(Android:spinnerStyle="@Android:style/Widget.Spinner.DropDown"の代わり)は私の電話では実行されますが、タブレットでは実行されません

私の解決策はもっと簡単です:行を削除します。

spinnerMode="dropdown"はデフォルトであるため、不要です

2
Carlos Gómez

すべてのstyle要素を削除してから、次々に追加し、それでもレンダリングされるかどうかを常に確認します。したがって、少なくともどちらが原因であるかを見つけることができます。

0
Ridcully

グーグルがこのエラーのために、そして後世のためにこのページを指しているように...

私の場合、気まぐれで、私はEclipseを閉じて再度開いたそしてブームのエラーはなくなり、Eclipseはプレビューのレンダリングに問題はありませんでした。

私はこれがすべてに当てはまるとは限らないと強く信じていますが。

すべてが正しいと感じた場合は、Eclipseの再起動に支障はないと思います。

0
Samuel