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:
- No se puede iniciar la actividad ComponentInfo {com.example.countryselect / com.example.countryselect.OfferSelect}
- ¿Cómo puedo hacer que el texto de TextView sea de dos tamaños diferentes?
- Android - Creación de una máscara circular en vídeo
- Iniciar aplicación android desde el enlace en sms
- ¿Cómo podemos utilizar android: inputType en EditTextPreference?
<?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 vista de vídeo no es de pantalla completa en modo horizontal
- Android Studio 2.2.3: Error al ejecutar la aplicación: Actividad predeterminada no encontrada
- Obtención de activos en fragmentos
- Generar errores con XML a la dependencia del convertidor de objetos de java en build.gradle para retroadaptación
- ¿Cómo editar el valor de un nodo de un archivo XML existente de una tarjeta SD y guardarlo de nuevo?
- Android spinner eliminar dropdown vertical extra espacio / padding
- Trunca automáticamente texto TextView para no superponer otro TextView
- Visualización de la variable en pantalla usando Android por TextViews
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