adt无法解析drawable资源的解决办法

来源:互联网 发布:微博刷粉软件安卓版 编辑:程序博客网 时间:2024/05/16 05:33

adt无法解析drawable资源的解决办法:

错误如下:

eclipse.buildId=M20120208-0800
java.version=1.6.0_31
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

Error
Tue May 15 10:15:23 CST 2012
rss_news_item.xml: Failed to parse file E:\work\aaa\res\drawable\list_item.xml

org.xmlpull.v1.XmlPullParserException: Binary XML file line #4: <item> tag requires a 'drawable' attribute or child tag defining a drawable
 at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:165)
 at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:788)
 at android.graphics.drawable.Drawable.createFromXml(Drawable.java:729)
 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:1850)
 at android.view.View.<init>(View.java:1799)
 at android.view.ViewGroup.<init>(ViewGroup.java:284)
 at android.widget.LinearLayout.<init>(LinearLayout.java:92)
 at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
 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.inflate(LayoutInflater.java:385)
 at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
 at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:278)
 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:1323)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1077)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener.reloadLayoutSwt(GraphicalEditorPart.java:1539)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener.access$0(GraphicalEditorPart.java:1477)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ReloadListener$1.run(GraphicalEditorPart.java:1471)
 at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
 at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
 at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
 at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
 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:344)
 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:622)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

 

解决方法:

在图形模式下打开资源文件,clean下project,关闭eclipse,然后重新打开eclipse,资源文件即可正常解析

open the layout in graphical layout editor.Clean the project.Keep the layout open in graphical editor, close eclipse and open it again.

The suggestion on comment #42 worked for me, in addition to removing the project library setting:

1. open the layout in graphical layout editor.

2. Clean the project.

3. Remove the project library setting.

4. Keep the layout open in graphical editor, close eclipse and open it again.

5. the layout should work now, you can check the project as library again.

原创粉丝点击