Question

I created Android XML lay out with some custom components. But when I am saving the XML file I get error. Since this is my fist time with custom components (widgets) I have no idea why am I getting this error. This is my xml code.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_marginTop="12dp"
android:orientation="vertical"
android:background="@drawable/layout_bg">

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:layout_gravity="center_horizontal"
    android:paddingLeft="12dp"
    android:paddingRight="12dp"
    android:paddingTop="30dp">

  <kankan.wheel.widget.WheelView android:id="@+id/day"
        android:layout_height="wrap_content"
        android:layout_width="46dp"/>
    <kankan.wheel.widget.WheelView android:id="@+id/month"
        android:layout_height="wrap_content"
        android:layout_width="100dp"/>
    <kankan.wheel.widget.WheelView android:id="@+id/year"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/> 


</LinearLayout>

And this is the error I get. I must say that there is no such a resource value in R.java file

error! NotFoundException: Could not resolve resource value: 0x7F020009.

android.content.res.Resources$NotFoundException: Could not resolve resource value: 0x7F020009. at com.android.layoutlib.bridge.BridgeResources.throwException(BridgeResources.java:546) at com.android.layoutlib.bridge.BridgeResources.getDrawable(BridgeResources.java:131) at kankan.wheel.widget.WheelView.initResourcesIfNecessary(WheelView.java:427) at kankan.wheel.widget.WheelView.calculateLayoutWidth(WheelView.java:482) at kankan.wheel.widget.WheelView.onMeasure(WheelView.java:518) at android.view.View.measure(View.java:7964) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:619) at android.widget.LinearLayout.onMeasure(LinearLayout.java:280) at android.view.View.measure(View.java:7964) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) at android.widget.LinearLayout.measureVertical(LinearLayout.java:350) at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) at android.view.View.measure(View.java:7964) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3023) at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) at android.view.View.measure(View.java:7964) at com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:443) at com.android.ide.common.rendering.LayoutLibrary.createLegacySession(LayoutLibrary.java:404) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:285) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1506) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1312) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1043) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.onXmlModelChanged(GraphicalEditorPart.java:1005) at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.xmlModelChanged(LayoutEditor.java:303) at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor$XmlModelStateListener.modelChanged(AndroidXmlEditor.java:1213) at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.fireModelChanged(AbstractStructuredModel.java:553) at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.internalModelChanged(AbstractStructuredModel.java:887) at org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.changedModel(AbstractStructuredModel.java:382) at org.eclipse.wst.xml.core.internal.document.DOMModelImpl.changedModel(DOMModelImpl.java:167) at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapEditXmlModel(AndroidXmlEditor.java:803) at com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode.setPropertyValue(UiElementNode.java:1885) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.CanvasViewInfo.setPropertyValue(CanvasViewInfo.java:320) at org.eclipse.ui.views.properties.PropertySheetEntry.valueChanged(PropertySheetEntry.java:782) at org.eclipse.ui.views.properties.PropertySheetEntry.setValue(PropertySheetEntry.java:723) at org.eclipse.ui.views.properties.PropertySheetEntry.applyEditorValue(PropertySheetEntry.java:146) at org.eclipse.ui.views.properties.PropertySheetEntry$1.applyEditorValue(PropertySheetEntry.java:103) at org.eclipse.jface.viewers.CellEditor$1.run(CellEditor.java:333) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49) at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) at org.eclipse.jface.viewers.CellEditor.fireApplyEditorValue(CellEditor.java:331) at com.android.ide.eclipse.adt.internal.editors.ui.EditableDialogCellEditor.handleDefaultSelection(EditableDialogCellEditor.java:264) at com.android.ide.eclipse.adt.internal.editors.ui.EditableDialogCellEditor$1.widgetDefaultSelected(EditableDialogCellEditor.java:83) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:119) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657) 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(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

Please help me to resolve this error. Thanks in advance.

Was it helpful?

Solution

There is a resource that is not found. It could be e.g. the @drawable/layout_bg you're using?

If that's not it, take a look at these two lines:

initResourcesIfNecessary(WheelView.java:427) 
calculateLayoutWidth(WheelView.java:482) 

You're calling something there that is requesting a Resource that is not there (an Id, a drawable, etc etc).

OTHER TIPS

To solve this problem all I had to do is remove the following import:

import kankan.wheel.R; // remove this line

which gets added automatically when you copy and paste the code from the sample demo

Remove the line highlighted in this screen grab

Every thing is correct. Please check the image format for layout_bg in drawable folder. Supported formats:

1.jpg 2.png 3.bmp

(eg: Android accept .jpg, not .jpeg).

I solved this by "try-catching" the resources access in the method

     initResourcesIfNecessary

I understand that it is not the ideal solution, but at least now i can edit my layouts in design time.

The modified method is below

        private void initResourcesIfNecessary() {


    if (centerDrawable == null) {
        try {
            centerDrawable = getContext().getResources().getDrawable(R.drawable.wheel_val);
        } catch (Exception ex) {
            centerDrawable = null;
        }
    }

    if (topShadow == null) {
        try {
            topShadow = new GradientDrawable(Orientation.TOP_BOTTOM, SHADOWS_COLORS);
        } catch (Exception ex) {
            topShadow = null;
        }
    }

    if (bottomShadow == null) {
        try {
            bottomShadow = new GradientDrawable(Orientation.BOTTOM_TOP, SHADOWS_COLORS);
        } catch (Exception ex) {
            bottomShadow = null;
        }
    }
    try {
        setBackgroundResource(R.drawable.wheel_bg);
    } catch (Exception ex) {
        setBackgroundResource(0);
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top