0

当我尝试在 ADT 的图形布局中查看我的布局时出现此错误。该项目运行良好,一开始没有任何问题。此外,如果我开始一个新项目并在图形布局中打开一个布局 xml 文件,它会很好地加载它。这些是 xml 文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/tot"
    android:textSize="40sp" />

<Button
    android:id="@+id/btn_Add"
    android:layout_width="450sp"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="@string/add" />

<Button
    android:id="@+id/btn_Sub"
    android:layout_width="450sp"
    android:layout_height="wrap_content"
    android:layout_marginTop="14dp"
    android:gravity="center"
    android:text="@string/sub" />

</LinearLayout>

日志猫:

java.lang.NullPointerException
at android.graphics.Bitmap_Delegate.nativeWidth(Bitmap_Delegate.java:296)
at android.graphics.Bitmap.nativeWidth(Bitmap.java)
at android.graphics.Bitmap.getWidth(Bitmap.java:917)
at android.graphics.Bitmap.getScaledWidth(Bitmap.java:965)
at android.graphics.drawable.BitmapDrawable.computeBitmapSize(BitmapDrawable.java:183)
at android.graphics.drawable.BitmapDrawable.setBitmap(BitmapDrawable.java:191)
at android.graphics.drawable.BitmapDrawable.<init>(BitmapDrawable.java:604)
at android.graphics.drawable.BitmapDrawable.<init>(BitmapDrawable.java:114)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:239)
at com.android.layoutlib.bridge.bars.CustomBar.loadIcon(CustomBar.java:212)
at com.android.layoutlib.bridge.bars.CustomBar.loadIconById(CustomBar.java:204)
at com.android.layoutlib.bridge.bars.CustomBar.loadIconById(CustomBar.java:171)
at com.android.layoutlib.bridge.bars.FakeActionBar.<init>(FakeActionBar.java:38)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:347)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:336)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:333)
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)
4

4 回答 4

1

你说的对。我很快就会遇到这些类型的错误。以下修复对我有用。

1)在xml模式下。选择所有代码,复制它。

2)创建新的布局文件。粘贴代码。

3) 删除旧文件。将新文件重命名为以前的文件名。

玩得开心。

于 2013-09-28T21:01:00.883 回答
0

仅尝试在图形布局中查看布局时不会出错。这些错误可能是您之前运行项目时遇到的运行时错误,或者可能是其他一些项目。

通过 Logcat 控制台中的“clear-log”按钮清理你的日志,你会没事的。

编辑1:

所以这不是你的 Logcat 错误(运行时错误)。这是您的编译时错误。

我注意到您为按钮提供了硬编码的宽度。这可能不是一个正确的方法。给它“wrap_content”。此外,您永远不应该为“sp”中的视图提供宽度和高度。如果必须,请始终使用“dp”。“sp”通常表示“文本”字体大小。您可能想查看此 SO链接以了解有关 sp、dp 的更多说明。

于 2013-09-28T20:56:44.203 回答
0

如果您仍然遇到此问题,请右键单击布局文件并选择使用 XML 编辑器打开,而不是使用 Android 通用 XML 编辑器。

于 2014-03-30T23:50:14.593 回答
0

发现了这个问题,我的 xml 文件位于 drawable 内的子文件夹下,我使用的是 Android Studio。这就是我最初所做的:

  1. 在drawable中的二次点击
  2. 新文件
  3. 新文件已分配给 xxhdpi 子文件夹
  4. 最终选择xml文件

这是重做(修复):

  1. 可绘制文件夹中的二次单击
  2. 新/可绘制资源
  3. 新资源直接添加到drawable文件夹

如果我帮助了你,请告诉我。

于 2015-01-19T17:18:34.747 回答