Frage an android, android-layout, grid-layout – Eclipse mit dem Fehler android.support.v7.widget.GridLayout konnte nicht instanziiert werden

9

Ich habe versucht, das GridLayout aus der Support-Bibliothek zu integrieren, aber es funktioniert nicht. Mein Ziel-Build ist für die API-Version 10. Der von mir verwendete XML-Code ist nachstehend aufgeführt:

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

Wenn Eclipse versucht, dies zu kompilieren, lautet der angegebene Fehler: android.support.v7.widget.GridLayout konnte nicht instanziiert werden. Der Stack-Trace lautet:

    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)

Aufgrund der Tatsache, dass niemand mit diesem Problem konfrontiert ist, vermute ich, dass ich die v7-Bibliothek nicht richtig eingerichtet habe. Die Schritte, denen ich gefolgt bin:

Erstellen Sie ein Bibliotheksprojekt im Verzeichnis "gridlayout"Dieses Projekt zu meinem Hauptprojekt hinzugefügtFügte das jar aus dem gridlayout lib-Verzeichnis zum lib-Verzeichnis meines Hauptprojekts hinzu

Jede Hilfe wird sehr geschätzt.

Vielen Dank für Ihre Bemühungen, Jungs zu helfen, aber nichts hat funktioniert. Aber endlich die Lösung gefunden. Es ist mir extrem peinlich zu sagen, dass ich JAVA auf meinem Computer aktualisieren musste. Entschuldigung ... Aviral
:-) Hoffentlich hat die Lösung zum Upgrade von Java auch für Sie funktioniert ... Aviral
Ich habe genau das gleiche Problem, das Schließen macht für mich keinen Sinn. Andreas Petersson

Deine Antwort

4   die antwort
0

dass Sie für Android L arbeiten, aber fügen Sie diese Zeile trotzdem in Ihre styles.xml ein.

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

und folgen Sie den Anweisungen in der Datei README.txt im Ordner "extras \ android \ compatible \ v7 \ gridlayout".

Hoffe das hilft dir.

Anmerkungen: Sie müssen grid: columnCount = "6" anstelle von android.support.v7.widget.columnCount = "6" verwenden, da Sie das Präfix "grid" in xmlns: grid = "http://schemas.android.com deklarieren / apk / res-auto ".

+1 für die versteckte README! Eclipse ist jedoch nicht in der Lage, die GridLayout-Klasse in meinem Projekt zu finden, d. Himport android.support.v7.widget.GridLayout weil hier nur drei Widgets verfügbar sind - PopupMenu, SearchView, ShareActionProvider. Ist ein erforderlicher Schritt erforderlich, um die GridLayout-Klasse einzuschließen? faizal
Hoppla, ich habe dieses Support-Projekt nicht in meinen Arbeitsbereich importiert. Funktioniert jetzt. faizal
3

adt (auch auf version 20 preview 2), sdk manager und die support library.

Versuchen Sie, Eclipse neu zu starten, und prüfen Sie, ob dies hilfreich ist.

Versuchen Sie, ein völlig neues Projekt zu erstellen (wobei für das minimale und das Ziel-SDK ein niedriges SDK verwendet wird, jedoch nicht für das in der Datei project.properties angegebene), und ziehen Sie das gridLayout in den visuellen Editor. Dadurch wird die benötigte Bibliothek automatisch hinzugefügt.

Wenn nichts hilft, probieren Sie dieses Beispiel:http://code.google.com/p/android-playground/source/checkout

0

die von verschiedenen Mitwirkenden bereitgestellt wurden (z. B. Eclipse neu starten, Bibliothek entfernen und hinzufügen usw.).

Nachdem ich das angeschaut habeSeite? ˅Ich habe folgendes getan:

Ersetzen Sie die gesamte Bibliothek android-support-v4.jar durch android-sdk (in der Hoffnung, dass es sich um die neueste Kopie handelt).Ich habe das Gridlayout in XML kommentiert und benutze den Layout-Editor, ziehe einfach das Gridlayout.

Danach funktioniert alles für mich. Ich bin nicht sicher, welcher Schritt das Problem behebt, aber der Versuch schadet nicht.

Verwandte Fragen