【发布时间】:2026-01-22 03:00:02
【问题描述】:
嗨。我正在向 Imageview 添加背景 xml 文件,但在 Eclipse 图形布局中出现此错误:
错误!无法解析drawable “com.android.ide.common.rendering.api.ResourceValue@1ae0c2” 在属性“背景”异常 详细信息记录在 Window > Show 查看 > 错误日志
当我在设备上运行小部件时,背景以正确的方式显示,但 Eclipse 中的错误真的很烦人。背景文件是:
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/grey_back_tile"
android:tileMode="repeat" />
这是我使用它的地方:
<ImageView android:layout_gravity="top|center_horizontal" android:layout_marginTop="4dp" android:layout_width="286dp" android:layout_height="47dp" android:background="@drawable/widget_background_banner"/>
错误日志堆栈跟踪显示:
org.xmlpull.v1.XmlPullParserException: 二进制 XML 文件第 5 行: 需要有效的 src 属性 android.graphics.drawable.BitmapDrawable.inflate(BitmapDrawable.java:341) 在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:779) 在 android.graphics.drawable.Drawable.createFromXml(Drawable.java:720) 在 com.android.layoutlib.bridge.ResourceHelper.getDrawable(ResourceHelper.java:150) 在 com.android.layoutlib.bridge.BridgeTypedArray.getDrawable(BridgeTypedArray.java:668) 在 android.view.View.(View.java:1846) 在 android.widget.ImageView.(ImageView.java:109) 在 android.widget.ImageView.(ImageView.java:105) 在 sun.reflect.GeneratedConstructorAccessor16.newInstance(未知 来源)在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知 来源)在 android.view.LayoutInflater.createView(LayoutInflater.java:499) 在 android.view.BridgeInflater.onCreateView(BridgeInflater.java:77) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562) 在 android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:122) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:617) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:620) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:407) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:296) 在 com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:377) 在 com.android.ide.common.rendering.LayoutLibrary.createLegacySession(LayoutLibrary.java:394) 在 com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:276) 在 com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(未知 来源)在 com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(未知 来源)在 com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(未知 来源)在 com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(未知 来源)在 com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.partActivated(未知 来源)在 com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.partBroughtToTop(未知 来源)在 org.eclipse.ui.internal.PartListenerList$2.run(PartListenerList.java:87) 在 org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 在 org.eclipse.core.runtime.Platform.run(Platform.java:888) 在 org.eclipse.ui.internal.PartListenerList.fireEvent(PartListenerList.java:57) 在 org.eclipse.ui.internal.PartListenerList.firePartBroughtToTop(PartListenerList.java:85) 在 org.eclipse.ui.internal.PartService.firePartBroughtToTop(PartService.java:208) 在 org.eclipse.ui.internal.WorkbenchPagePartList.firePartBroughtToTop(WorkbenchPagePartList.java:76) 在 org.eclipse.ui.internal.WorkbenchPagePartList.fireActiveEditorChanged(WorkbenchPagePartList.java:52) 在 org.eclipse.ui.internal.PartList.setActiveEditor(PartList.java:162) 在 org.eclipse.ui.internal.WorkbenchPage.makeActiveEditor(WorkbenchPage.java:1281) 在 org.eclipse.ui.internal.WorkbenchPage.setActivePart(WorkbenchPage.java:3530) 在 org.eclipse.ui.internal.WorkbenchPage.requestActivation(WorkbenchPage.java:3077) 在 org.eclipse.ui.internal.PartPane.requestActivation(PartPane.java:279) 在 org.eclipse.ui.internal.EditorPane.requestActivation(EditorPane.java:98) 在 org.eclipse.ui.internal.PartPane.setFocus(PartPane.java:325) 在 org.eclipse.ui.internal.EditorPane.setFocus(EditorPane.java:127) 在 org.eclipse.ui.internal.PartStack.presentationSelectionChanged(PartStack.java:844) 在 org.eclipse.ui.internal.PartStack.access$1(PartStack.java:827) 在 org.eclipse.ui.internal.PartStack$1.selectPart(PartStack.java:137) 在 org.eclipse.ui.internal.presentations.util.TabbedStackPresentation$1.handleEvent(TabbedStackPresentation.java:133) 在 org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:269) 在 org.eclipse.ui.internal.presentations.util.AbstractTabFolder.fireEvent(AbstractTabFolder.java:278) 在 org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder.access$1(DefaultTabFolder.java:1) 在 org.eclipse.ui.internal.presentations.defaultpresentation.DefaultTabFolder$2.handleEvent(DefaultTabFolder.java:88) 在 org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 在 org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 在 org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077) 在 org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062) 在 org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774) 在 org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743) 在 org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429) 在 org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257) 在 org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 在 org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) 在 org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) 在 org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) 在 org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640) 在 org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604) 在 org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438) 在 org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671) 在 org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 在 org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664) 在 org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 在 org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115) 在 org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) 在 org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) 在 org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native 方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(未知 来源)在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知 来源)在 java.lang.reflect.Method.invoke(未知 来源)在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) 在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) 在 org.eclipse.equinox.launcher.Main.run(Main.java:1407)
“grey_back_tile.png”自然是一个有效的资源,它位于“drawable-hdpi”文件夹中。有什么线索可以消除该错误吗?
【问题讨论】:
-
你有没有把你的drawables复制到所有文件夹hdpi、ldpi、mdpi
标签: android eclipse background bitmap