Eclipse Grapic Layout: невозможно разрешить рисование ... в атрибуте "background" - PullRequest
1 голос
/ 21 февраля 2011

Привет. Я добавляю фоновый XML-файл в ImageView, но я получаю эту ошибку в графическом макете Eclipse:

Ошибка! Невозможно разрешить рисование "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».Любой ключ, чтобы избавиться от этой ошибки?

1 Ответ

2 голосов
/ 19 мая 2011

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

Итак, плиточный фон XML с именем app_background:

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/space"  android:tileMode="repeat" />

Тогда стиль, ссылаясь на него:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TestBackground">
        <item name="android:background">@drawable/app_background</item>
    </style>
</resources>

А затем назначьте стиль макету:

style="@style/TestBackground"
...