Domanda

Ho creato Android XML lay out con alcuni componenti personalizzati. Ma quando sto salvando il file XML ottengo l'errore. Dal momento che questa è la mia prima volta con componenti personalizzati (widget) Non ho idea del perché mi appare questo errore. Questo è il mio codice XML.

<?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>

E questo è l'errore che ottengo. devo dire che non c'è un tale valore di risorsa nel file di R.java

Errore! NotFoundException: Impossibile valore della risorsa risolvere:. 0x7F020009

android.content.res.Resources $ NotFoundException: Impossibile risolvere il valore delle risorse: 0x7F020009. a com.android.layoutlib.bridge.BridgeResources.throwException (BridgeResources.java:546) a com.android.layoutlib.bridge.BridgeResources.getDrawable (BridgeResources.java:131) a kankan.wheel.widget.WheelView.initResourcesIfNecessary (WheelView.java:427) a kankan.wheel.widget.WheelView.calculateLayoutWidth (WheelView.java:482) a kankan.wheel.widget.WheelView.onMeasure (WheelView.java:518) a android.view.View.measure (View.java:7964) a android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3023) a android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:888) a android.widget.LinearLayout.measureHorizontal (LinearLayout.java:619) a android.widget.LinearLayout.onMeasure (LinearLayout.java:280) a android.view.View.measure (View.java:7964) a android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3023) a android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:888) a android.widget.LinearLayout.measureVertical (LinearLayout.java:350) a android.widget.LinearLayout.onMeasure (LinearLayout.java:278) a android.view.View.measure (View.java:7964) a android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3023) a android.widget.FrameLayout.onMeasure (FrameLayout.java:245) a android.view.View.measure (View.java:7964) a com.android.layoutlib.bridge.Bridge.computeLayout (Bridge.java:443) a com.android.ide.common.rendering.LayoutLibrary.createLegacySession (LayoutLibrary.java:404) a com.android.ide.common.rendering.LayoutLibrary.createSession (LayoutLibrary.java:285) a com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge (GraphicalEditorPart.java:1506) a com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge (GraphicalEditorPart.java:1312) a com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout (GraphicalEditorPart.java:1043) a com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.onXmlModelChanged (GraphicalEditorPart.java:1005) a com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.xmlModelChanged (LayoutEditor.java:303) a com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor $ XmlModelStateListener.modelChanged (AndroidXmlEditor.java:1213) a org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.fireModelChanged (AbstractStructuredModel.java:553) a org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.internalModelChanged (AbstractStructuredModel.java:887) a org.eclipse.wst.sse.core.internal.model.AbstractStructuredModel.changedModel (AbstractStructuredModel.java:382) a org.eclipse.wst.xml.core.internal.document.DOMModelImpl.changedModel (DOMModelImpl.java:167) a com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapEditXmlModel (AndroidXmlEditor.java:803) a com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode.setPropertyValue (UiElementNode.java:1885) a com.android.ide.eclipse.adt.internal.editors.layout.gle2.CanvasViewInfo.setPropertyValue (CanvasViewInfo.java:320) a org.eclipse.ui.views.properties.PropertySheetEntry.valueChanged (PropertySheetEntry.java:782) a org.eclipse.ui.views.properties.PropertySheetEntry.setValue (PropertySheetEntry.java:723) a org.eclipse.ui.views.properties.PropertySheetEntry.applyEditorValue (PropertySheetEntry.java:146) a org.eclipse.ui.views.properties.PropertySheetEntry $ 1.applyEditorValue (PropertySheetEntry.java:103) a org.eclipse.jface.viewers.CellEditor $ 1.run (CellEditor.java:333) a org.eclipse.core.runtime.SafeRunner.run (SafeRunner.java:42) a org.eclipse.ui.internal.JFaceUtil $ 1.run (JFaceUtil.java:49) a org.eclipse.jface.util.SafeRunnable.run (SafeRunnable.java:175) a org.eclipse.jface.viewers.CellEditor.fireApplyEditorValue (CellEditor.java:331) a com.android.ide.eclipse.adt.internal.editors.ui.EditableDialogCellEditor.handleDefaultSelection (EditableDialogCellEditor.java:264) a com.android.ide.eclipse.adt.internal.editors.ui.EditableDialogCellEditor $ 1.widgetDefaultSelected (EditableDialogCellEditor.java:83) a org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:119) a org.eclipse.swt.widgets.EventTable.sendEvent (EventTable.java:84) a org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1053) a org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:4066) a org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3657) a org.eclipse.ui.internal.Workbench.runEventLoop (Workbench.java:2640) a org.eclipse.ui.internal.Workbench.runUI (Workbench.java:2604) a org.eclipse.ui.internal.Workbench.access $ 4 (Workbench.java:2438) a org.eclipse.ui.internal.Workbench $ 7.run (Workbench.java:671) a org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332) a org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:664) a org.eclipse.ui.PlatformUI.createAndRunWorkbench (PlatformUI.java:149) a org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:115) a org.eclipse.equinox.internal.app.EclipseAppHandle.run (EclipseAppHandle.java:196) a org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication (EclipseAppLauncher.java:110) a org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start (EclipseAppLauncher.java:79) a org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:369) a org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:179) a sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) a sun.reflect.NativeMethodAccessorImpl.invoke (Sconosciuto Fonte) sun.reflect.DelegatingMethodAccessorImpl.invoke (Sconosciuto Fonte) java.lang.reflect.Method.invoke (Sconosciuto Fonte) org.eclipse.equinox.launcher.Main.invokeFramework (Main.java:619) a org.eclipse.equinox.launcher.Main.basicRun (Main.java:574) a org.eclipse.equinox.launcher.Main.run (Main.java:1407) a org.eclipse.equinox.launcher.Main.main (Main.java:1383)

mi aiuti a risolvere questo errore. Grazie in anticipo.

È stato utile?

Soluzione

V'è una risorsa che non si trova. Potrebbe essere ad esempio il @drawable/layout_bg si sta utilizzando?

Se non è questo, dare un'occhiata a queste due righe:

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

Si sta chiamando qualcosa lì che richiede una risorsa che non è lì (un ID, un disegnabile, etc etc).

Altri suggerimenti

Per risolvere questo problema tutto quello che dovevo fare è rimuovere la seguente importazione:

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

che viene aggiunto automaticamente quando si copia e incolla il codice dal campione demo

Rimuovere la riga evidenziata in questo afferrare schermo

Ogni cosa è corretto. Si prega di verificare il formato di immagine per nella cartella layout_bg drawable. Formati supportati:

1.jpg 2.png 3.bmp

(ad esempio: Android accettare .jpg, .jpeg non).

Ho risolto questo "try-catching" l'accesso risorse nel metodo

     initResourcesIfNecessary

Mi rendo conto che non è la soluzione ideale, ma almeno adesso posso modificare il mio layout in fase di progettazione.

Il metodo modificato è inferiore

        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);
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top