NullPointerException lanzado en Eclipse al intentar abrir la vista de Android XML?

Aquí está la excepción:

java.lang.NullPointerException at android.widget.TextView.setTextColor(TextView.java:1787) at android.widget.TabHost$LabelIndicatorStrategy.createIndicatorView(TabHost.java:521) at android.widget.TabHost.addTab(TabHost.java:204) at com.android.layoutlib.bridge.Bridge.setupTabHost(Bridge.java:880) at com.android.layoutlib.bridge.Bridge.postInflateProcess(Bridge.java:807) at com.android.layoutlib.bridge.Bridge.postInflateProcess(Bridge.java:813) at com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:401) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.computeLayout(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(Unknown Source) at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(Unknown Source) at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1282) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1267) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1061) at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743) at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429) at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1258) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3540) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3161) 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(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) 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) 

Aquí está el archivo main.xml que está asociado:

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@android:id/tabhost"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <TabWidget xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@android:id/tabs" /> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent"> <include layout="@layout/basic_tab" /> <include layout="@layout/advanced_tab" /> </FrameLayout> </LinearLayout> </TabHost> 

Ambos archivos de inclusión funcionan individualmente bien. Pero cuando en una presentación de tabulación, este error se produce. ¿Alguna corrección?
Aquí está el código:

 import android.app.TabActivity; import android.content.res.Resources; import android.os.Bundle; import android.widget.TabHost; import com.mohit.geo2do.R; public class TaskEdit extends TabActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_task); Resources res = getResources(); TabHost host = getTabHost(); host.addTab(host.newTabSpec("basic") .setIndicator("Basic", res.getDrawable(android.R.drawable.ic_menu_edit)) .setContent(R.layout.basic_tab)); host.addTab(host.newTabSpec("advanced") .setIndicator("Advanced", res.getDrawable(android.R.drawable.ic_menu_manage)) .setContent(R.layout.advanced_tab)); host.setCurrentTab(0); } } 

Y aquí están los archivos xml, advanced_tab:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/advanced_tab_layout"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:text="Notify me:" android:textColor="#FFFFFF" android:textStyle="bold" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:id="@+id/task_due" android:text="when task is due" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:id="@+id/task_overdue" android:text="when task is overdue" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:id="@+id/task_datetime" android:text="at" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:text="Calendar:" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:id="@+id/task_calendar" android:text="Create a calendar event" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> </LinearLayout> 

Y basic_tab.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:id="@+id/basic_tab_layout"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:text="Title:" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="5dip" /> <EditText android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/title" android:hint="Name of the task..." /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Importance:" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="10dip" /> <RadioGroup android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="horizontal" android:id="@+id/importance_grp"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="High" android:paddingRight="25dip" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium" android:checked="true" android:paddingRight="25dip" /> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Low" /> </RadioGroup> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Due Date:" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="10dip" /> <Spinner android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/due_date" android:prompt="@string/due_date_prompt" android:entries="@array/due_date_entries" /> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Notes:" android:textColor="#FFFFFF" android:textStyle="bold" android:paddingTop="10dip" /> <EditText android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/notes" android:hint="Notes..." android:minLines="4" /> </LinearLayout> 

ACTUALIZAR:

Aparentemente:

 host.addTab(host.newTabSpec("advanced") .setIndicator("Advanced", res.getDrawable(android.R.drawable.ic_menu_manage)) .setContent(R.layout.advanced_tab)); 

No toma un archivo xml de diseño para ser su contenido. Debería ser:

 host.addTab(host.newTabSpec("advanced") .setIndicator("Advanced", res.getDrawable(android.R.drawable.ic_menu_manage)) .setContent(R.id.advanced_tab_layout)); 

Donde setContent toma un id. Todavía consigo ese error, pero en el emulador, las lengüetas exhiben realmente, PERO CON NINGÚN CONTENIDO!

La excepción que está listando es un error en el propio editor de diseño. Cuando ejecutamos el código de diseño de Android, no estábamos inicializando correctamente la versión de SDK, lo que significaba que algún código de versión condicional en el TabWidget se ejecutaría (lo cual falla porque no se ejecuta realmente en la versión que piensa). Estamos corrigiendo esto en ADT 10 (junto con varios otros problemas de representación / previsualización de las pestañas.)

( Este es el conjunto de cambios que busca la versión correcta para pasar al renderizador)

Bueno, acabo de limpiar el proyecto y eliminado el archivo edit_task.xml y lo recreé. Funciona bien ahora.

Finalmente existe una solución, instale el SDK de vista previa de Android 3.0, puede establecer el destino de renderizado en el editor de diseño en 3.0.

Más información aquí-> http://code.google.com/p/android/issues/detail?id=13092

  • ImageView esquinas redondeadas
  • ¿Qué es el carácter 0x1f?
  • Temas de Android: Defina colores / degradados en "baseTheme.xml", use dentro de controles, reemplace en "subThemeX.xml"
  • ¿Cómo puedo colocar dos botones al lado de una imagen en la parte inferior del botón?
  • Tratar de que Android LinearLayout se estire horizontal y verticalmente
  • Marcador de Google Maps para Android: Released unknown imageData reference
  • Cómo agregar un texto largo con muchos párrafos en string.xml en android
  • Cómo hacer que el código Java para llamar a una cadena de un archivo XML (en Android Studio)
  • Ajuste EditText al tamaño de fuente
  • Cómo poner este símbolo: "'" (simple cotización) en un XMLfile de android?
  • Cómo crear líneas en xml
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.