2011-11-13 8 views
22

मैं इस तरह drawable फ़ोल्डर में एक राज्य सूची चयनकर्ता फ़ाइल item_bg_selector.xml बनाया:त्रुटि: <item> टैग एक 'drawable' विशेषता या बच्चे टैग को परिभाषित करने की आवश्यकता है एक drawable

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

तो मैं एक शैली तत्व को निर्धारित

<ImageButton style="@style/Item" 
     android:id="@id/btn_home" 
    android:src="@drawable/home_button" /> 
:
<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 इस तरह बनाने की कोशिश

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) 

अब, सवाल है, जहां त्रुटि है:

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

अपवाद ट्रेस नीचे दिया गया है 1,363,210

ग्रहण मुझे Event Details विंडो में निम्न त्रुटि दे रही रखता है? फ़ोल्डर में drawables मौजूद हैं। टैग में एक ड्रायबल विशेषता है। मैंने क्रॉस को करीब 15 बार चेक किया है और फिर भी मुझे समस्या नहीं मिली है। मेरा मानना ​​है कि यह एक बहुत ही साधारण समस्या है (यदि कोई है)। इस के साथ पाने के लिए आसपास के किसी भी काम की भी सराहना की है।

अतिरिक्त: इसके अलावा, item_bg_selector.xml में लाइन 16 मैंने पोस्ट की गई फ़ाइल में शीर्ष से तीसरी पंक्ति के अनुरूप है।

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

उत्तर

12

अंत में, मुझे पता चला कि यह केवल एडीटी के साथ एक समस्या है और यह वास्तव में डिवाइस पर ठीक चलती है। यह 21046 जारी करने के अनुरूप है।

+0

किसी भी समाधान? सुझाए गए किसी भी व्यक्ति ने मेरे लिए काम नहीं किया। – Matthias

+0

ऐसा लगता है कि यह आर 17 में तय किया गया है; tools.android.com पर एक पूर्वावलोकन उपलब्ध है। –

2

मुझे भी एक ही समस्या का सामना करना पड़ा।

मैंने अभी -clean के साथ ग्रहण को फिर से शुरू किया, और प्रश्न में परियोजना पर project -> Clean किया और त्रुटियां चली गईं।

+0

यह ओएस पर निर्भर करता है जो हम भी उपयोग करते हैं। यह मैक पर काम करते हैं। – 500865

+0

हाँ यह मैक –

36

त्रुटि अपने xml के प्रारूप के साथ क्या करना है, तो आप की तरह

android:background="@drawable/item_bg_selector" 

कुछ सेट कर रहे हैं क्या त्रुटि आप कह रहा है कि वह इस

android:drawable="@drawable/item_bg_selector" 
+1

में काम नहीं कर रहा है मैंने कुछ भी काम करने की कोशिश की, जब भी कुछ भी काम नहीं किया, तब भी इंटेलिज पर स्विच किया गया। इस समाधान ने मेरा दिन बचाया। बहुत बहुत धन्यवाद। –

+0

मैंने "एंड्रॉइड: पृष्ठभूमि" को "एंड्रॉइड: ड्रायबल" में बदलने की कोशिश की। यह काम नहीं करता है। – Gene

+0

इसका कामकाजी धन्यवाद –

2

की तरह होना चाहिए है ग्रहण को पुनरारंभ करना और परियोजना की सफाई करना मेरे लिए काम करता है।

18

मैं एक ही त्रुटि और विशेषताओं के आदेश स्विचन था (के रूप में यह इस other question को this answer में सुझाव दिया गया था) drawable पहले एक समस्या हल करने के लिए।

आपके मामले में स्विच करने से किया जाएगा:

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

रहे हैं:

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

सेट नहीं कर रहा है आपका समाधान काम करता है! लेकिन मुझे आश्चर्य है कि ऐसा क्यों है। हम राज्य के लिए आकर्षित करने के लिए परिभाषित कर रहे हैं। दूसरा रास्ता नहीं है :) – Ashwin

+0

यहां तक ​​कि [आधिकारिक दस्तावेज़] (https://developer.android.com/guide/topics/resources/color-list-resource.html) इस बारे में गलत हैं – mr5

0

मैं यह सही फाइल सिस्टम (मैक पर खोजक) में छवि को कॉपी करके बजाय एंड्रॉयड के माध्यम से काम करने के लिए मिल गया है स्टूडियो।

0

मुझे समस्या थी क्योंकि प्री-लॉलीपॉप उपकरणों के लिए चयनकर्ता का नाम बदलने पर, मैं ड्रॉबल-वी 21 फ़ोल्डर में वही नाम के साथ लहर का नाम बदलना भूल गया।

0

में LinearLayout अतिरिक्त LinearLayout पर एक ही त्रुटि होती है। इसे हटाने से समस्या हल हो जाती है।

सफाई और अन्य चीजें मदद नहीं करते हैं।

2

मैंने एक अलग समस्या के लिए एक ही अपवाद का अनुभव किया है।

<RadioButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@color/tab_background_selector" /> 

<!-- /res/color/tab_background_selector.xml --> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@color/white" android:state_checked="true" /> 
    <item android:color="@color/light_blue" /> 
</selector> 

drawable फ़ोल्डर में चयनकर्ता बढ़ते और बदलते android:colorandroid:drawable को समस्या हल:

मैं View के android:background के लिए एक रंग चयनकर्ता का उपयोग करने के लिए कोशिश कर रहा था।

इसके अलावा, लेआउट में पृष्ठभूमि परिभाषा android:background="@drawable/tab_background_selector"

को बदलने की आवश्यकता है यहाँ अंतिम चयनकर्ता है:

<!-- /res/drawable/tab_background_selector.xml --> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/white" android:state_checked="true" /> 
    <item android:drawable="@color/light_blue" /> 
</selector> 
संबंधित मुद्दे