Pregunta sobre android-layout, android, grid-layout – Eclipse dando un error de android.support.v7.widget.GridLayout no pudo crear una instancia

9

He intentado incorporar GridLayout desde la biblioteca de soporte, pero no funciona. Mi compilación de destino es para la versión 10 de la API. El código XML que estoy usando se muestra a continuación:

    <?xml version="1.0" encoding="UTF-8"?>
    <android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:grid="http://schemas.android.com/apk/res-auto"      
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android.support.v7.widget.columnCount="6" >
 <Button
     android:id="@+id/button1"
     android.support.v7.widget.layout_column="1" 
     android.support.v7.widget.layout_columnSpan="2"
     android.support.v7.widget.layout_gravity="left"
     android.support.v7.widget.layout_row="1"
     android:text="Button" />

 </android.support.v7.widget.GridLayout>

Cuando Eclipse intenta compilar esto, el error dado es: android.support.v7.widget.GridLayout no pudo crear una instancia. La traza de pila es:

    java.lang.NoClassDefFoundError: android/support/v7/gridlayout/R$dimen
at android.support.v7.widget.GridLayout.<init>(GridLayout.java:255)
at android.support.v7.widget.GridLayout.<init>(GridLayout.java:274)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:402)
at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:166)
at com.android.layoutlib.bridge.android.BridgeInflater.loadCustomView(BridgeInflater.java:205)
at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:133)
at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:279)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:318)
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:1361)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1115)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:941)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:585)
at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
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.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2746)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1433)
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:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
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:344)
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:622)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

Debido al hecho de que nadie se enfrenta a este problema, sospecho que no he configurado la biblioteca v7 correctamente. Los pasos que he seguido:

Crear un proyecto de biblioteca en el directorio "gridlayout"Agregué este proyecto a mi proyecto principalAgregué el jar del directorio lib de gridlayout al directorio lib de mi proyecto principal

Cualquier ayuda será muy apreciada.

:-) Con suerte, la solución para actualizar Java también funcionó para usted ... Aviral
Tengo exactamente el mismo problema, el cierre no tiene sentido para mí. Andreas Petersson
Gracias por sus esfuerzos para ayudar a los chicos, pero nada estaba funcionando. Pero, finalmente encontró la solución. EXTREMADAMENTE avergonzado de decir que necesitaba actualizar el JAVA en mi máquina. Disculpas ... Aviral

Tu respuesta

4   la respuesta
0

pero de todos modos incluye esta línea dentro de tu styles.xml.

<item name="windowActionBar">false</item> 
0

olaboradores (p. Ej., Reinicie Eclipse, elimine y agregue libary, etc.)

Después de mirar estositio, Hice lo siguiente:

Reemplace toda la biblioteca android-support-v4.jar con android-sdk (con la esperanza de que sea la última copia)Comenté el Gridlayout en xml y uso el editor de diseño solo arrastre gridlayout.

Después de eso todo funciona para mí. No estoy seguro de qué paso es el que lo arregla, pero no hay nada de malo en intentarlo.

6

luego siga las instrucciones en el archivo README.txt en la carpeta "extras \ android \ support \ v7 \ gridlayout".

Espero que esto te ayude.

Notas: Debe usar grid: columnCount = "6" en lugar de android.support.v7.widget.columnCount = "6" porque declara el prefijo "grid" en xmlns: grid = "http://schemas.android.com / apk / res-auto ".

+1 para el README oculto! Pero Eclipse no puede encontrar la clase GridLayout dentro de mi proyecto, es decir, no puedo hacerloimport android.support.v7.widget.GridLayout porque solo hay tres widgets disponibles aquí: PopupMenu, SearchView, ShareActionProvider. ¿Se requiere algún paso de requisito previo para incluir la clase GridLayout? faizal
Vaya, no había importado este proyecto de soporte en mi área de trabajo. Trabaja ahora faizal
3

adt (incluso a la versión 20 vista previa 2), sdk manager y la biblioteca de soporte.

intenta reiniciar eclipse y ver si eso ayuda.

intente crear un proyecto totalmente nuevo (con sdk bajo que se usa para el sdk mínimo y objetivo, pero no para el especificado en el archivo project.properties) y arrastre el gridLayout en el editor visual. esto agregará automáticamente la biblioteca necesaria.

Si nada ayuda, prueba este ejemplo:http://code.google.com/p/android-playground/source/checkout

Preguntas relacionadas