Ошибка: тегу <item> требуется атрибут «drawable» или дочерний тег, определяющий возможность рисования

Я создал файл селектора состояний item_bg_selector.xml в item_bg_selector.xml папке следующим образом:

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/item_background_selected" /> <item android:state_focused="true" android:drawable="@drawable/item_background_selected" /> <item android:state_pressed="true" android:drawable="@drawable/item_background_selected" /> <item android:drawable="@android:color/transparent"/> </selector> 

Затем я определяю элемент стиля

 <style name="Item"> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:background">@drawable/item_bg_selector</item> </style> 

Затем я пытаюсь создать ImageButton следующим образом:

  <ImageButton style="@style/Item" android:id="@id/btn_home" android:src="@drawable/home_button" /> 

Eclipse продолжает давать мне следующую ошибку в окне Event Details о Event Details :

 Failed to parse file /path/to/projectdir/res/drawable/item_bg_selector.xml 

Трассировка исключения приведена ниже:

 org.xmlpull.v1.XmlPullParserException: Binary XML file line #16: <item> tag requires a 'drawable' attribute or child tag defining a drawable at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:167) at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787) at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728) at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:208) at com.android.layoutlib.bridge.android.BridgeTypedArray.getDrawable(BridgeTypedArray.java:731) at android.view.View.<init>(View.java:1885) at android.widget.ImageView.<init>(ImageView.java:112) at android.widget.ImageButton.<init>(ImageButton.java:85) at android.widget.ImageButton.<init>(ImageButton.java:81) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at android.view.LayoutInflater.createView(LayoutInflater.java:500) at com.android.layoutlib.bridge.android.BridgeInflater.onCreateView(BridgeInflater.java:84) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:129) at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) at android.view.LayoutInflater.rInflate(LayoutInflater.java:621) at android.view.LayoutInflater.inflate(LayoutInflater.java:407) at android.view.LayoutInflater.inflate(LayoutInflater.java:296) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:279) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:318) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1317) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1071) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:897) at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:384) at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195) at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 

Теперь вопрос в том, где ошибка? Доступные в папке. Имеет атрибут drawable. Я перекрестно проверил это около 15 раз, и все же я не смог найти проблему. Я считаю, что это очень простая проблема (если есть). Любая работа вокруг, чтобы справиться с этим, также приветствуется.

Дополнение: также строка 16 в item_bg_selector.xml соответствует третьей строке сверху в файле, который я опубликовал. то есть

 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" line16 ----> android:drawable="@drawable/item_background_selected" /> 

Solutions Collecting From Web of "Ошибка: тегу <item> требуется атрибут «drawable» или дочерний тег, определяющий возможность рисования"

Ошибка связана с форматом вашего xml, вы устанавливаете что-то вроде

 android:background="@drawable/item_bg_selector" 

Что говорит вам ошибка, так это должно быть так

 android:drawable="@drawable/item_bg_selector" 

Я имел ту же ошибку и переключил порядок атрибутов (как это было предложено в этом ответе на этот другой вопрос ), чтобы иметь возможность вырезать первую проблему.

В вашем случае будет переключаться:

  <item android:state_selected="true" android:drawable="@drawable/item_background_selected" /> 

чтобы:

  <item android:drawable="@drawable/item_background_selected" android:state_selected="true" /> 

Наконец, я узнал, что это проблема только с ADT, и на самом деле это нормально работает на устройстве. Это соответствует вопросу 21046 .

Я также столкнулся с той же проблемой.

Я только что запустил eclipse с -clean , и сделал project -> Clean в проекте, о котором идет речь, и ошибки исчезли.

Перезапуск Eclipse и очистка проекта работали на меня.

Я получил его для работы, скопировав изображение прямо в файловую систему (Finder на Mac), а не через Android Studio.

У меня возникла проблема, потому что, переименовывая селектор для устройств с предварительным леоптипом, я забыл переименовать пульсацию с тем же именем в папке drawable-v21.

Такая же ошибка возникает в файле activity_main.xml если в Activity есть дополнительный LinearLayout . Удаление этого вопроса решает проблему.

Чистка и другие вещи не помогают.