0

私が作成しているこのプロジェクトがあり、別のプロジェクトから xml コードをコピーする必要がありました。その後、プロジェクトの xml ファイルがグラフィカル レイアウトに表示されなくなりました。代わりに、次の警告が書かれています。

java.lang.NullPointerException
Exception details are logged in Window > Show View > Error Log

エラーログで調べると、わかります。

メッセージ:

chat_layout.xml: java.lang.NullPointerException

例外スタック トレース:

java.lang.NullPointerException
    at android.graphics.Bitmap_Delegate.nativeWidth(Bitmap_Delegate.java:291)
    at android.graphics.Bitmap.nativeWidth(Bitmap.java)
    at android.graphics.Bitmap.getWidth(Bitmap.java:909)
    at android.graphics.Bitmap.getScaledWidth(Bitmap.java:957)
    at android.graphics.drawable.BitmapDrawable.computeBitmapSize(BitmapDrawable.java:179)
    at android.graphics.drawable.BitmapDrawable.setBitmap(BitmapDrawable.java:187)
    at android.graphics.drawable.BitmapDrawable.<init>(BitmapDrawable.java:555)
    at android.graphics.drawable.BitmapDrawable.<init>(BitmapDrawable.java:110)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:239)
    at com.android.layoutlib.bridge.bars.CustomBar.loadIcon(CustomBar.java:196)
    at com.android.layoutlib.bridge.bars.CustomBar.loadIconById(CustomBar.java:188)
    at com.android.layoutlib.bridge.bars.CustomBar.loadIconById(CustomBar.java:155)
    at com.android.layoutlib.bridge.bars.FakeActionBar.<init>(FakeActionBar.java:38)
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:333)
    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:683)
    at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.pageChange(CommonXmlEditor.java:360)
    at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
    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:2746)
    at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1433)
    at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
    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.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    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)

グラフィカル レイアウトは、これを除く Eclipse のすべてのプロジェクトの他のすべての xml ファイルに対して正常に機能します。コピー前はすべて正常に機能していました。何をすべきか ??

xml ファイルは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/background_dark"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/bottom_write_bar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        <EditText
            android:id="@+id/textbox"
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_margin="5sp"
            android:layout_weight="1"
            android:hint="Write here"
            android:padding="5sp"
            tools:ignore="HardcodedText" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_margin="5sp"
            android:onClick="sendMessage"
            android:paddingBottom="5sp"
            android:paddingLeft="15sp"
            android:paddingRight="15sp"
            android:paddingTop="5sp"
            android:text="Send"
            android:textColor="#FFF"
            tools:ignore="HardcodedText" />

    </LinearLayout>

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_above="@id/bottom_write_bar"
        android:layout_alignParentTop="true"
        android:cacheColorHint="#00000000"
        android:divider="#00000000"
        android:listSelector="#00000000" >
    </ListView>

    <TextView
        android:id="@android:id/empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/bottom_write_bar"
        android:layout_alignParentTop="true"
        android:gravity="center_vertical|center_horizontal" />

</RelativeLayout>
4

4 に答える 4

0

私も昨日この問題を抱えていましたが、今解決しました。下位または上位の API レベルの Platform SDK をインストールしてみてください。当初、アプリケーションが古いプラットフォームで動作することを望んでいたため、古いスタイルのテーマでプログラムを作成しましたが、xml を編集して 4.3 SDK で表示すると、このエラーが発生しました。

于 2013-11-01T07:03:26.973 に答える
0

ソースからのすべての res 画像が bin/res フォルダーにあるかどうかを確認します

于 2013-08-29T03:35:18.210 に答える
0

2つの問題のいずれかを抱えているようです。

  1. ファイルの名前が間違っています。[問題] タブを確認してください
  2. Eclipse を再起動すると、グラフィカル ビューが大量のメモリを消費し、混乱することがあります。Juno を実行している場合は、更新を実行します。最新のものはもう少し安定しています。
于 2013-08-29T03:37:44.283 に答える