2013-09-28 31 views
0

當我嘗試在ADT中的圖形佈局中查看我的佈局時,出現此錯誤。 該項目運行良好,首先沒有問題。 另外,如果我啓動一個新項目並在圖形佈局中打開一個佈局xml文件,那麼它的加載效果很好。 這些都是xml文件代碼:Android:NullPointerException

<?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> 

的logcat:

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) 
+0

如果清理項目會發生什麼? – andy256

+0

沒有什麼相同的問題 – Zachinio

+0

按鈕layout_width不應該在'dp'中嗎? – Prince

回答

0

,而只是試圖在圖形佈局,查看你的佈局不能得到一個錯誤。這些錯誤可能是您以前運行項目時獲得的運行時錯誤,或者可能是其他一些項目。

通過Logcat控制檯中的「清除日誌」按鈕來清理日誌,你會沒事的。

編輯1:

那麼這是不是你的logcat錯誤(運行時錯誤)。這是您的編譯時錯誤。

我注意到你給你的按鈕提供了硬編碼的寬度。這可能不是一個正確的方法。給它「wrap_content」。另外你不應該給寬度&高度的「sp」中的意見。如果必須的話,總是使用'​​dp'。 'sp'通常用於「文本」字體大小。你可能想看看這個SO link以獲得sp,dp的更多解釋。

+0

我嘗試過這麼多次。當我嘗試打開所示的圖形佈局時:java.lang.NullPointerException 在窗口>顯示視圖>錯誤日誌中記錄異常詳細信息 – Zachinio

+0

將按鈕寬度更改爲wrap_content,仍然是相同的錯誤 – Zachinio

1

你說得對。我很快就會面臨這些類型的錯誤。以下修復對我有用。

1)在xml模式下。選擇所有代碼,複製它。

2)創建新的佈局文件。粘貼代碼。

3)刪除舊文件。將新文件重命名爲以前的文件名。

玩得開心。

+0

仍然無法工作 – Zachinio

+1

然後更新您的平臺工具或轉移到android studio。 – Adnan

0

如果仍然存在此問題,請右鍵單擊佈局文件並選擇使用XML編輯器打開,而不是使用Android公共XML編輯器。

0

發現這個問題,我的XML文件是在一個子文件夾內的drawable,我使用Android Studio。 這是我最初做的:

    在繪製
  1. 新文件
  2. 次點擊
  3. 新文件是分配到xxhdpi子文件夾
  4. 最終選擇XML文件

這是重做(修復):

  1. 中學c舔在drawbable文件夾
  2. 新建/繪製資源
  3. 新的資源直接添加到文件夾繪製

請讓我知道,如果我幫你。