我一直在尝试使用v7支持库在我的android项目中使用网格布局。我已经看到很多人遇到了我遇到的同样的问题,但他们所有的修复都不适合我。我已经更新了java。我已经更新了最新的支持库。我已将支持包添加到构建路径中。我已经尝试将gridview拖到视图上并允许eclipse导入包。没有这些工作。我继续让android.support.v7.widget.GridLayout
无法实例化。我甚至创建了一个测试项目,并从支持网格布局和相同的错误开始。有没有其他想法?这些是我寻求帮助的地方:
Eclipse giving an error of android.support.v7.widget.GridLayout failed to instantiate
IntelliJ and 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:New Edit,要求删除一个引用。
这是我得到的确切例外:
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)
答案 0 :(得分:7)
我遇到了同样的问题,我通过导入“... / android-sdks / extras / android / support / v7 / gridlayout”作为“现有Android代码进入WorkSpace”修复了它。
它的项目名称是“android.support.v7.widget.GridLayout”,它是一个库。然后你应该在项目/属性/ Android /库面板中“添加...”它作为库。然后它应该工作。 希望这对你有所帮助。
下面是我的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>
答案 1 :(得分:0)
M也使用了这个,我使用它就像这个
看到这个,我已经添加了一个gridlayout,并且已添加到我生成的文件中,但是在你的情况下不要在生成的文件中添加gridview,这就是你面对这个问题的原因,制作构建路径或者如果你说我会发送你是我的gridview布局,但它是自动生成的,当我在设计文件中添加gridview然后它自动下载并自动添加refrence,所以你agin添加gridview从设计文件和gridlayout也在你生成的文件中,链接你的项目与gridviewlayout V7 ...
答案 2 :(得分:0)
好的,我以一种奇怪的方式解决了这个问题。如果有人能给我一个解释,我会给他们赏金!我开始玩Virtual Box,真的很喜欢新的Fedora 18.决定双启动来创建一个Android开发环境。用eclipse包下载了组合的adt。我在Windows中创建了一个50GB的分区,用于在os之间共享文件并在那里复制我的项目。启动到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中工作?
答案 3 :(得分:-1)
尝试删除应用:useDefaultMargins =&#34; true&#34; 或将其设为false。
答案 4 :(得分:-1)
我通过将grid-support-v7-gridlayout.jar库设置为在gridlayout_V7项目中导出来解决了这个问题。
答案 5 :(得分:-1)
我也面临同样的问题,通过将“android-support-v7-gridlayout.jar”引用添加到项目库文件夹来修复。
来自路径: (Android安装)\ sdk \ extras \ android \ support \ v7 \ gridlayout \ libs
To Path: (工作区路径)(应用程序名称)\ libs