GridLayout dando errores, aplastando la aplicación

Soy bastante nuevo en los diseños, pero pude hacer con éxito un diseño bastante bonito (para una tableta). En Eclipse, funciona muy bien. Lo hice todo con el 'objetivo' en Android 4.0 (ICS), pero obviamente mi tableta sólo corre 3.0 (Honeycomb). Cuando me di cuenta del error, cambié el visor / edición de configuración a 3,2, pero Eclipse ni siquiera mostrar el gráfico de la disposición ya, simplemente escupe:

com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup Exception details are logged in Window > Show View > Error Log The following classes could not be found: - GridLayout (Change to android.widget.GridLayout, Fix Build Path, Edit XML) 

El registro de errores aparece:

 java.lang.ClassCastException: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:84) at android.view.LayoutInflater.rInflate(LayoutInflater.java:702) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:86) at android.view.LayoutInflater.rInflate(LayoutInflater.java:702) at android.view.LayoutInflater.inflate(LayoutInflater.java:479) at android.view.LayoutInflater.inflate(LayoutInflater.java:367) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:321) at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1317) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1071) at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart$ConfigListener.onConfigurationChange(GraphicalEditorPart.java:493) at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.onRenderingTargetChange(ConfigurationComposite.java:2192) at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite.access$4(ConfigurationComposite.java:2157) at com.android.ide.eclipse.adt.internal.editors.layout.configuration.ConfigurationComposite$2.widgetSelected(ConfigurationComposite.java:441) 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.Display.sendEvent(Display.java:3783) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284) 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:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575) at org.eclipse.equinox.launcher.Main.run(Main.java:1408) 

Y aquí está mi diseño:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/LinearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#4CBB17" android:baselineAligned="false" android:weightSum="5" > <GridLayout android:id="@+id/gridLayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000" android:columnCount="1" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> <LinearLayout android:id="@+id/linearLayout3" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="5" > <GridLayout android:id="@+id/gridLayout2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" android:background="#4CBB17" android:columnCount="7" > <Space android:layout_width="100dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <Space android:layout_width="117dp" android:layout_height="1dp" android:layout_column="0" android:layout_gravity="fill_horizontal" android:layout_row="0" /> <Space android:layout_width="100dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <Space android:layout_width="100dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <Space android:layout_width="101dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <Space android:layout_width="2225dp" android:layout_height="1dp" android:layout_column="4" android:layout_gravity="fill_horizontal" android:layout_row="0" /> <Space android:layout_width="1dp" android:layout_height="32dp" android:layout_column="0" android:layout_gravity="fill_horizontal" android:layout_row="0" /> <ImageButton android:id="@+id/imageButton3" android:layout_column="2" android:layout_gravity="left" android:layout_row="1" android:src="@drawable/back_small" /> <ImageButton android:id="@+id/imageButton4" android:layout_column="3" android:layout_gravity="left" android:layout_row="1" android:src="@drawable/back_small" /> <ImageButton android:id="@+id/imageButton2" android:layout_column="4" android:layout_gravity="left" android:layout_row="1" android:src="@drawable/back_small" /> <ImageButton android:id="@+id/imageView2" android:layout_column="1" android:layout_gravity="left" android:layout_row="1" android:src="@drawable/back_small" /> </GridLayout> <GridLayout android:id="@+id/gridLayout3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="#4CBB17" android:columnCount="9" > <Space android:layout_width="1dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <Space android:layout_width="100dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" android:layout_row="1" /> <Space android:layout_width="100dp" android:layout_height="15dp" android:layout_gravity="fill_horizontal" /> <ImageButton android:id="@+id/imageView1" android:layout_column="8" android:layout_gravity="left" android:layout_row="1" android:src="@drawable/back" /> <Button android:id="@+id/nextButton" android:layout_column="2" android:layout_gravity="left" android:layout_row="1" android:text="Next" /> </GridLayout> <GridLayout android:id="@+id/gridLayout5" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="2" > <LinearLayout android:id="@+id/LinearLayout2" android:layout_width="match_parent" android:layout_height="207dp" android:layout_gravity="fill_horizontal" android:orientation="horizontal" > <Button android:id="@+id/blackButton" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/blackbutton" android:layout_weight="1"/> <Button android:id="@+id/redButton" android:layout_width="match_parent" android:layout_height="202dp" android:layout_weight="1" android:background="@drawable/redbutton" /> </LinearLayout> </GridLayout> </LinearLayout> </GridLayout> </LinearLayout> 

En última instancia, soy capaz de instalar la aplicación en mi tableta, pero sólo se bloquea de inmediato con esto de LogCat:

  10-29 23:44:05.180: E/AndroidRuntime(14135): FATAL EXCEPTION: main 10-29 23:44:05.180: E/AndroidRuntime(14135): java.lang.RuntimeException: Unable to start activity ComponentInfo{ca.ajwest.irishpoker/ca.ajwest.irishpoker.IrishPokerActivity}: java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1741) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1757) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread.access$1500(ActivityThread.java:123) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:998) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.os.Handler.dispatchMessage(Handler.java:99) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.os.Looper.loop(Looper.java:126) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread.main(ActivityThread.java:4002) 10-29 23:44:05.180: E/AndroidRuntime(14135): at java.lang.reflect.Method.invokeNative(Native Method) 10-29 23:44:05.180: E/AndroidRuntime(14135): at java.lang.reflect.Method.invoke(Method.java:491) 10-29 23:44:05.180: E/AndroidRuntime(14135): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844) 10-29 23:44:05.180: E/AndroidRuntime(14135): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 10-29 23:44:05.180: E/AndroidRuntime(14135): at dalvik.system.NativeStart.main(Native Method) 10-29 23:44:05.180: E/AndroidRuntime(14135): Caused by: java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.widget.AdapterView.addView(AdapterView.java:459) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.view.LayoutInflater.rInflate(LayoutInflater.java:728) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.view.LayoutInflater.rInflate(LayoutInflater.java:727) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.view.LayoutInflater.inflate(LayoutInflater.java:479) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.view.LayoutInflater.inflate(LayoutInflater.java:391) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.view.LayoutInflater.inflate(LayoutInflater.java:347) 10-29 23:44:05.180: E/AndroidRuntime(14135): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:247) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.Activity.setContentView(Activity.java:1771) 10-29 23:44:05.180: E/AndroidRuntime(14135): at ca.ajwest.irishpoker.IrishPokerActivity.onCreate(IrishPokerActivity.java:30) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048) 10-29 23:44:05.180: E/AndroidRuntime(14135): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1705) 10-29 23:44:05.180: E/AndroidRuntime(14135): ... 11 more 

Volverá a hacer todo el diseño con 2.3 seleccionado solucionar este problema? Eso es tan sucky …

El GridLayout fue introducido en Android 4.0. No se puede utilizar en 3.0 o 3.2.

Ahora que las fuentes de Sandwich del helado se hicieron disponibles tuve una mirada para ver si sería posible utilizar el GridLayout recientemente introducido en pre-4.0. Y es realmente posible. Vea mi post en http://blog.peterkuterna.net/2011/11/using-new-gridlayout-on-pre-ice-cream.html

  • El ajuste de texto en varios EditTexts inflados hace que todos se rellenen con el mismo texto después de la rotación
  • Crash después de agregar pie de página a ListView
  • ¿Cómo inflar otro diseño dentro de getView () del adaptador gridview en android?
  • Android: Adaptador personalizado con hiladora personalizada desplegable diseño xml que da error
  • setText () no funciona en el diseño hinchado
  • ¿Cómo funciona el método getView () al crear su propio adaptador personalizado?
  • Evite pasar null como raíz de vista (necesita resolver los parámetros de diseño en el elemento raíz del diseño hinchado)
  • Diferencia entre setContentView y LayoutInflater
  • ¿Qué significa el parámetro LayoutInflater attachToRoot?
  • Cómo obtener datos de EditText creado dinámicamente con LayoutInflater en android?
  • Cómo usar RecyclerView, Tratando de seguir la sugerencia de developer.android.com pero obtener un error
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.