Привет. Я добавляю фоновый XML файл в Imageview, но получаю эту ошибку в графическом макете Eclipse:
Ошибка! Не удалось разрешить доступный "Com.android.ide.common.rendering.api.ResourceValue@1ae0c2" в атрибуте "background" Exception детали регистрируются в окне > Показать Просмотp > Журнал ошибок
Когда я запускаю виджет на устройстве, фон отображается правильно, но ошибка в 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.Доступ к $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". Любой ключ, чтобы избавиться от этой ошибки?
Я знаю, что опаздываю, но столкнулся с той же проблемой. Я довольно уверен, что это ошибка 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"