加载Android的布局XML文件时得到一个异常 [英] Get an exception when loading Android Layout XML file

查看:201
本文介绍了加载Android的布局XML文件时得到一个异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

由于某种原因,我得到了以下异常,当我在Eclipse中加载XML布局。

我也不太清楚什么可能导致这个,因为我不相信,我已对文件进行任何新的变化。此外,当我与呈现在Eclipse 19 API 的布局,没有例外。然而,当我与API渲染21,我得到下面的异常?什么可能会引发这种异常?

 显示java.lang.NullPointerException
在android.view.ViewGroup_Delegate.drawShadow(ViewGroup_Delegate.java:74)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15017)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15017)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15017)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15223)
在android.widget.FrameLayout.draw(FrameLayout.java:592)
在android.widget.ScrollView.draw(ScrollView.java:1689)
在android.view.View.draw(View.java:15022)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15017)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15017)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15117)
在android.view.View.draw(View.java:15022)
在android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
在android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
在android.view.ViewGroup.drawChild(ViewGroup.java:3404)
在android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
在android.view.View.draw(View.java:15117)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:587)
在com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:334)
在com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:517)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1584)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1309)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:1066)
在com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegatePageChange(LayoutEditorDelegate.java:686)
在com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
在org.eclipse.ui.part.MultiPageEditorPart $ 2.widgetSelected(MultiPageEditorPart.java:294)
在org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
在org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
在org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
在org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3110)
在org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1794)
在org.eclipse.swt.custom.CTabFolder $ 1.handleEvent(CTabFolder.java:283)
在org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
在org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
在org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
在org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
在org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
在org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine $ 9.run(PartRenderingEngine.java:1151)
在org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
在org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
在org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
在org.eclipse.ui.internal.Workbench $ 5.run(Workbench.java:636)
在org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
在org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
在org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
在org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
在org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
在org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
在org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
在sun.reflect.NativeMethodAccessorImpl.invoke(来源不明)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明)
在java.lang.reflect.Method.invoke(来源不明)
在org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
在org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
在org.eclipse.equinox.launcher.Main.run(Main.java:1465)
在org.eclipse.equinox.launcher.Main.main(Main.java:1438)


解决方案

我在Android Studio中相同的问题。在我的情况下,根布局是LinearLayout中。在那里,我曾与布局的高度和宽度match_parent嵌套的RelativeLayout和DrawerLayout包括其布局的高度和宽度也match_parent。我也有在RelativeLayout的一个按钮,TextView中。我觉得AndroidStudio不能得出因为所有的嵌套match_parent的按钮和/或TextView中。

我会尝试寻找的嵌套布局。如果您的问题不是嵌套布局,我会尝试改变一点你的布局一点看IDE无法呈现的内容。

For some reason I get the following exception when I load the XML layout in eclipse.

I am not too sure what might be causing this as I don't believe I have made any new changes to the file. Also when I render the layout with API 19 in eclipse, there is no exception. However, when I render with API 21, I get the below exception? What might trigger this sort of exception?

java.lang.NullPointerException
at android.view.ViewGroup_Delegate.drawShadow(ViewGroup_Delegate.java:74)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15223)
at android.widget.FrameLayout.draw(FrameLayout.java:592)
at android.widget.ScrollView.draw(ScrollView.java:1689)
at android.view.View.draw(View.java:15022)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15017)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15117)
at android.view.View.draw(View.java:15022)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3404)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:53)
at android.view.ViewGroup.drawChild(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3198)
at android.view.View.draw(View.java:15117)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:587)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:334)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:332)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:517)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1584)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1309)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:1066)
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:294)
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.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1085)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1070)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:782)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3110)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1794)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:283)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236)
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:648)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

解决方案

I had the same issue in Android Studio. In my case, the root layout was a LinearLayout. In there, I had a nested RelativeLayout with the layout height and width as match_parent and a DrawerLayout included whose layout height and width was also match_parent. I also had a Button and TextView in the RelativeLayout. I think AndroidStudio couldn't draw the Button and/or TextView because of all the nested 'match_parent's.

I would try looking at the nested layouts. If your issue isn't the nested layouts, I would try altering your layout little by little to see what the IDE isn't able to render.

这篇关于加载Android的布局XML文件时得到一个异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆