it-swarm.com.ru

Ошибка макета Android: "Идентификатор ресурса <res_id> не относится к типу STYLE (вместо attr)"

Я вижу ошибку, которую я никогда раньше не видел с Android, из-за которой некоторые из моих файлов макетов не рендерится в Eclipse. Они хорошо отображаются во время выполнения.

Ошибка, которая отображается в редакторе графического макета (и в моем журнале ошибок): "Resouce id 0x1010081 не относится к типу STYLE (вместо attr)"

Я искал идентификатор ресурса 0x1010081 в моих файлах R, и я не могу его найти, поэтому я предполагаю, что, возможно, каким-то образом у меня конфликт со встроенным атрибутом Android. Я также убедился, что все мои атрибуты стиля ниже указывают на фактические стили, а не на атрибут. Любая помощь приветствуется.

Вот мой полный код макета:

<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>
26
Karim Varela

У меня также есть эта проблема, с тем же идентификатором ресурса, показывая. Он исчезает, когда я изменяю Android:spinnerMode на "dialog", поэтому я подозреваю, что это не проблема с вашим кодом.

Указанный идентификатор относится к атрибуту Android spinnerStyle. Смотрите документ для R.attr

Я нашел обходной путь, а именно заменить

Android:spinnerMode="dropdown"

с

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

71
JulianSymes

Вы пытались изменить свойство каждого стиля на что-то вроде этого:

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

Как говорит JulianSymes, проблема в том,

Android:spinnerMode="dropdown"

Его решение (заменить Android:spinnerStyle="@Android:style/Widget.Spinner.DropDown") работает на моем телефоне, но не на моем планшете

Мое решение более простое: УДАЛИТЬ ЛИНИЮ. 

spinnerMode="dropdown" по умолчанию, поэтому он не нужен

1
Carlos Gómez

Удалите все элементы style, а затем добавляйте их один за другим и всегда проверяйте, отображается ли он по-прежнему. Таким образом, вы можете по крайней мере выяснить, кто виноват.

0
Ridcully

Как Google указывает на эту страницу за эту ошибку, так и ради потомков ...

В моем случае по какой-то причине я закрыл и снова открыл Eclipse и бум, ошибка исчезла, и у Eclipse не возникло проблем с рендерингом предварительного просмотра.

Хотя я твердо верю, что это может быть не для всех.

Если вы чувствуете, что сделали все правильно, я думаю, это не помешает перезапустить Eclipse.

0
Samuel