2013-09-28 3 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> 

로그 캣 : 단지 그래픽 레이아웃에 레이아웃을 확인하는 동안

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 콘솔에서 사용할 수있는 "clear-log"버튼을 사용하여 로그를 정리하면 문제가 없습니다.

편집 1 :

그래서 이것은 당신의 로그 캣 오류 (런타임 오류)이 아니다. 이것은 컴파일 타임 오류입니다.

버튼에 하드 코딩 된 너비가 지정되어 있습니다. 이것은 아마도 올바른 접근 방식이 아닙니다. 그것을 "wrap_content"주세요. 또한 너는 폭 "012"에서 & 높이를 절대로 "sp"의보기에 넘겨서는 안됩니다. 항상 'dp'를 사용해야합니다. 'sp'는 일반적으로 "텍스트"글꼴 크기를 의미합니다. sp, dp에 대한 자세한 내용은 SO link을 확인하십시오.

+0

나는 이것을 여러 번 시도했다. 다음과 같은 그래픽 레이아웃을 열려고 시도했을 때 : java.lang.NullPointerException 예외 세부 정보가 Window> Show View> Error Log에 기록되었다. – Zachinio

+0

버튼 폭을 wrap_content로 변경했다. 여전히 동일한 오류 – Zachinio

1

당신 말이 맞습니다. 나는 곧 이런 종류의 오류에 직면한다. 다음과 같은 수정 작업이 필요합니다.

1) xml 모드에서. 모든 코드를 선택하고 복사하십시오.

2) 새 레이아웃 파일을 만듭니다. 코드 붙여 넣기.

3) 오래된 파일을 삭제하십시오. 새 파일의 이름을 이전 파일 이름으로 바꿉니다.

재미있게 보내십시오.

+0

여전히 작동하지 않습니다 – Zachinio

+1

다음 플랫폼 도구를 업데이트하거나 android studio로 이동하십시오. – Adnan

0

여전히이 문제가 발생하는 경우 레이아웃 파일을 마우스 오른쪽 버튼으로 클릭하고 Android 공통 XML 편집기가 아닌 XML 편집기로 열도록 선택하십시오.

0

이 문제는 내 xml 파일이 드로어 블 내부의 하위 폴더에 있었고, 안드로이드 스튜디오를 사용하고있었습니다.

  1. 새 파일이 하위 폴더를
  2. 결국 선택 XML 파일을 xxhdpi에 할당했다 당김
  3. 새 파일에
  4. 보조 클릭이

이것은 : 이것은 내가 처음에 무슨 짓을 재 작업 (수정) :

  1. 2 차 c drawbable 폴더에
  2. 새로운/그리기 자원
  3. 새 리소스가 당김 폴더에 직접 추가됩니다 핥고

은 내가 당신을 도움이 있으면 알려 주시기 바랍니다.

관련 문제