2

我一直在尝试使用 v7 支持库在我的 android 项目中使用网格布局。我已经看到很多人遇到了与我相同的问题,但他们的所有修复都对我不起作用。我已经更新了java。我已经更新了最新的支持库。我已将支持包添加到构建路径。我尝试将 gridview 拖到视图上并允许 eclipse 导入包。这些工作都不是。我继续android.support.v7.widget.GridLayout无法实例化。我什至创建了一个测试项目并从支持网格布局和相同的错误开始。有人有其他想法吗?这些是我寻求帮助的一些地方:

Eclipse 给出 android.support.v7.widget.GridLayout 的错误无法实例化

IntelliJ 和 android.support.v7.widget.GridLayout

Eclipse 和 Android SL GridLayout 不能一起工作 - “android.support.v7.widget.GridLayout 无法实例化”

在许多其他....

这是我的activity_main.xml:

 <?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    app:alignmentMode="alignBounds"
    app:columnCount="6"
    app:columnOrderPreserved="false"
    app:useDefaultMargins="true" >

    <EditText
        android:id="@+id/total"
        app:layout_column="0"
        app:layout_columnSpan="6"
        app:layout_gravity="left"
        app:layout_row="0"
        android:clickable="false"
        android:ems="10"
        android:inputType="none|number"
        android:textAlignment="textEnd"
        android:width="500dp" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/Button8"
        app:layout_column="1"
        app:layout_row="1"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="8" />

    <Button
        android:id="@+id/Button9"
        app:layout_column="2"
        app:layout_row="1"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="9" />

    <Button
        android:id="@+id/Button4"
        app:layout_column="0"
        app:layout_row="2"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="4" />

    <Button
        android:id="@+id/Button5"
        app:layout_column="1"
        app:layout_row="2"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="5" />

    <Button
        android:id="@+id/Button6"
        app:layout_column="2"
        app:layout_row="2"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="6" />

    <Button
        android:id="@+id/ButtonMultiply"
        app:layout_column="3"
        app:layout_row="2"
        android:background="@drawable/custom_button"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="Multiply"
        android:text="*"
        android:textColor="@color/light_grey" />

    <Button
        android:id="@+id/Button1"
        app:layout_column="0"
        app:layout_row="3"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="1" />

    <Button
        android:id="@+id/Button2"
        app:layout_column="1"
        app:layout_row="3"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="2" />

    <Button
        android:id="@+id/Button3"
        app:layout_column="2"
        app:layout_row="3"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="3" />

    <Button
        android:id="@+id/ButtonMinus"
        app:layout_column="3"
        app:layout_row="3"

        android:background="@drawable/custom_button"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="Subtract"
        android:text="-"
        android:textColor="@color/light_grey" />

    <Button
        android:id="@+id/ButtonDivide"
        app:layout_column="3"
        app:layout_gravity="right"
        app:layout_row="1"
        app:layout_rowSpan="2"
        android:background="@drawable/custom_button"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="Divide"
        android:text="/"
        android:textColor="@color/light_grey" />

    <Button
        android:id="@+id/button0"
        app:layout_column="0"
        app:layout_columnSpan="2"
        app:layout_row="4"
        android:background="@drawable/button_light_grey"
        android:minHeight="20dp"
        android:minWidth="82dp"
        android:onClick="numberButtonEventHandler"
        android:text="0" />

    <Button
        android:id="@+id/buttonPoint"
        app:layout_column="2"
        app:layout_row="4"
        android:background="@drawable/button_light_grey"
        android:minHeight="20dip"
        android:minWidth="40dp"
        android:onClick="numberButtonEventHandler"
        android:text="."
        android:width="20dip" />

    <Button
        android:id="@+id/ButtonPlus"
        app:layout_column="3"
        app:layout_row="4"
        android:background="@drawable/custom_button"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="Add"
        android:text="+"
        android:textColor="@color/light_grey" />

    <Button
        android:id="@+id/ButtonEqueals"
        app:layout_column="4"
        app:layout_row="3"
        app:layout_rowSpan="2"
        android:background="@drawable/custom_button"
        android:height="40dp"
        android:minHeight="82dp"
        android:minWidth="20dp"
        android:onClick="Equeals"
        android:text="="
        android:textColor="@color/light_grey"
        android:width="40dp" />

    <Button
        android:id="@+id/Button7"
        app:layout_column="0"
        app:layout_row="1"
        android:background="@drawable/button_light_grey"
        android:minHeight="40dip"
        android:minWidth="40dip"
        android:onClick="numberButtonEventHandler"
        android:text="7" />



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

这是项目树的一个片段,显示了所有指向 v7 gridlayout 的引用库、依赖项和库:新编辑,要求删除一个引用。

在此处输入图像描述

这是我得到的确切例外:

java.lang.ClassNotFoundException: android.support.v7.gridlayout.R$dimen
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    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(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.instantiateClass(ProjectCallback.java:422)
    at com.android.ide.eclipse.adt.internal.editors.layout.ProjectCallback.loadView(ProjectCallback.java:179)
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:135)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:372)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:385)
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:332)
    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:440)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1545)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1302)
    at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:1059)
    at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:686)
    at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
    at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:292)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
    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:3028)
    at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1749)
    at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:278)
    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:4169)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3758)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1053)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:942)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:588)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:543)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
    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:353)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
    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:601)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
4

6 回答 6

7

我遇到了同样的问题,我通过将“.../android-sdks/extras/android/support/v7/gridlayout”作为“Existing Android Code Into WorkSpace”导入来修复它。

它的项目名称是“android.support.v7.widget.GridLayout”,它是一个库。然后你应该在 Project/Properties/Android/Library 面板中“添加...”它作为一个库。然后它应该工作。希望这对您有所帮助。

下面是我的xml:

<ScrollView
    xmlns:grid="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="10dp" >

    <android.support.v7.widget.GridLayout
        android:id="@+id/gridlayout_home"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        android:paddingBottom="5dp"
        grid:columnCount="4"
        grid:rowCount="4" >
    </android.support.v7.widget.GridLayout>
</ScrollView>
于 2013-06-18T03:49:11.160 回答
0

M also using this , i am using this as like this enter image description here

see this , i have added a gridlayout and that is added in my generated files, but in your case don't add gridview in generated files thats why you are faceing that problem, make build path or if you say i will send you my gridview layout , but it is auto generated when i add a gridview in design file then it download automatically and add refrence automatically, so you agin add gridview from design file and that gridlayout also in your generated files, that link your project with gridviewlayout V7...

于 2013-04-09T12:17:13.593 回答
0

好的,我以一种奇怪的方式解决了这个问题。另外,如果有人能给我一个解释,我会给他们赏金!我开始玩 Virtual Box,非常喜欢新的 Fedora 18。决定双启动创建一个 android 开发环境。下载了结合了 Eclipse 包的 adt。我在 Windows 中创建了一个 50GB 的分区来在操作系统之间共享文件并将我的项目复制到那里。引导到 Fedora 并开始一个新的 android 项目。将我的 windows 项目中的所有文件复制并粘贴到这个新项目中,然后.... Presto!开箱即用。无需修改构建路径或其他任何内容。我收到一个警告:[2013-04-10 07:27:45 - gridlayout_v7] WARNING: unable to write jarlist cache file /home/craig/workspace/gridlayout_v7/bin/jarlist.cache但该项目在我的 avd 中运行没有问题。那怎么办?为什么它不能在 Windows 中工作,但在 Linux 中工作?

于 2013-04-10T05:52:19.857 回答
-1

我通过将 android-support-v7-gridlayout.jar 库设置为在 gridlayout_V7 项目上导出来解决了这个问题。

于 2013-07-10T17:41:04.963 回答
-1

尝试删除app:useDefaultMargins="true"或将其设为 false。

于 2013-04-09T11:12:20.317 回答
-1

我也遇到了同样的问题,通过在项目库文件夹中添加“android-support-v7-gridlayout.jar”引用来解决。

从路径:(Android 安装)\sdk\extras\android\support\v7\gridlayout\libs

到路径:(工作区路径)(应用程序名称)\libs

于 2013-08-15T08:01:45.230 回答