我收到此错误。DraggableGridView 无法实例化
Posted
技术标签:
【中文标题】我收到此错误。DraggableGridView 无法实例化【英文标题】:I am getting this error.DraggableGridView failed to instantiate 【发布时间】:2014-10-19 14:19:27 【问题描述】:我正在尝试制作一个应用程序来将多个选定的图像从 sd 卡检索到可拖动的 gridview 中。我在运行时收到以下错误。我的xml代码如下。 请帮我找到一个解决方案。
<xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:padding="2.0dip"
android:layout_
android:layout_
android:keepScreenOn="true"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<LinearLayout
android:gravity="center"
android:orientation="vertical"
android:id="@+id/layout_button"
android:layout_
android:layout_
android:layout_above="@+id/ad1">
<LinearLayout
android:gravity="center"
android:orientation="horizontal"
android:layout_
android:layout_
android:layout_marginBottom="10.0dip">
<Button
android:id="@+id/buttonChoosePictures"
android:background="@drawable/ingallery"
android:layout_
android:layout_ />
<Button
android:id="@+id/buttonMusic"
android:background="@drawable/inmusic"
android:layout_
android:layout_ />
</LinearLayout>
<LinearLayout android:gravity="center"
android:orientation="horizontal"
android:layout_
android:layout_
android:layout_marginTop="10.0dip">
<Button
android:id="@+id/buttonPreview"
android:background="@drawable/inpreview"
android:layout_
android:layout_ />
<Button
android:id="@+id/buttonSave"
android:background="@drawable/insave"
android:layout_
android:layout_ />
</LinearLayout>
<LinearLayout
android:gravity="center"
android:orientation="vertical"
android:layout_
android:layout_>
<TextView
android:textAppearance="?android:textAppearanceMedium"
android:textColor="@android:color/white"
android:id="@+id/textViewMessagetitle"
android:visibility="gone"
android:layout_
android:layout_
android:layout_marginTop="3.0dip"
android:layout_marginBottom="2.0dip"
android:text="Drag slide to arrange slide" />
<com.example.positivityapp.views.DraggableGridView
android:scrollbarStyle="insideOverlay"
android:id="@+id/vgv"
android:background="@drawable/bg_grid"
android:visibility="gone"
android:scrollbars="vertical"
android:layout_
android:layout_
android:layout_marginTop="5.0dip" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
我在错误日志中收到以下错误
日志
java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at com.example.positivityapp.views.DraggableGridView.<init>(DraggableGridView.java:103)
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: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.rInflate_Original(LayoutInflater.java:755)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:758)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:373)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:399)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:334)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:451)
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(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:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)
at org.eclipse.equinox.launcher.Main.main(Main.java:1414)
【问题讨论】:
【参考方案1】:java.lang.ClassCastException: com.android.layoutlib.bridge.android.BridgeContext cannot be cast to android.app.Activity
at com.example.positivityapp.views.DraggableGridView.<init>(DraggableGridView.java:103)
这不是运行时错误,而是 IDE 的图形布局编辑器中的异常。
基本上,DraggableGridView
似乎期望传递给它的Context
是Activity
,而图形布局编辑器为正在编辑的组件提供非活动上下文。
如果出现运行时错误,您将在 logcat 中看到堆栈跟踪。对于这些设计时错误,要么修复自定义视图组件,要么干脆不将图形布局编辑器用于包含此视图的布局。
【讨论】:
错误似乎在以下行。请帮助 ((Activity)paramContext).getWindowManager().getDefaultDisplay().getMetrics(localDisplayMetrics);以上是关于我收到此错误。DraggableGridView 无法实例化的主要内容,如果未能解决你的问题,请参考以下文章