2011-10-17 3 views
0

캔버스에 2 개의 이미지를 표시하려고합니다. 내가 하나를로드했습니다, 그리고 그것은 잘 작동합니다. 두 번째 앱은 동일한 방식으로 앱을 만들고로드하고 표시하지만 앱이 매번 닫힙니다.특정 이미지에 Android 강제 폐쇄 앱이 있습니다. 문제를 어떻게 추적 할 수 있습니까?

두 이미지는 모두 PNG이며 res/drawable-mdpi입니다.

로드 이미지 :

private Bitmap stageBMP=BitmapFactory.decodeResource(getResources(), R.drawable.stagel); 
private Bitmap magBMP = BitmapFactory.decodeResource(getResources(), R.drawable.mag); 

이미지 표시 :

canvas.drawBitmap(stageL, 300,300, null); 
canvas.drawBitmap(magBMP, 300,300, null); 

내가 마지막 줄을 주석 경우 (첫 번째 이미지를 표시) 응용 프로그램로드됩니다. magBMP을 표시하는 대신 stageL을 두 번 표시하고 작동합니다.

근무 이미지 :

Working image

호환되지 않는 이미지 :

Incompatible image

스택 트레이스 :

10-17 19:23:03.233: DEBUG/RobotronActivity(746): View added 
10-17 19:23:03.403: DEBUG/MainThread(746): Starting game loop 
10-17 19:23:03.543: WARN/dalvikvm(746): threadid=9: thread exiting with uncaught exception (group=0x40014760) 
10-17 19:23:03.543: ERROR/AndroidRuntime(746): FATAL EXCEPTION: Thread-10 
10-17 19:23:03.543: ERROR/AndroidRuntime(746): java.lang.NullPointerException 
10-17 19:23:03.543: ERROR/AndroidRuntime(746):  at android.graphics.Canvas.throwIfRecycled(Canvas.java:999) 
10-17 19:23:03.543: ERROR/AndroidRuntime(746):  at android.graphics.Canvas.drawBitmap(Canvas.java:1040) 
10-17 19:23:03.543: ERROR/AndroidRuntime(746):  at com.cjs.robotron.Droid.draw(Droid.java:28) 
10-17 19:23:03.543: ERROR/AndroidRuntime(746):  at com.cjs.robotron.MainGamePanel.onDraw(MainGamePanel.java:108) 
10-17 19:23:03.543: ERROR/AndroidRuntime(746):  at com.cjs.robotron.MainThread.run(MainThread.java:52) 
10-17 19:23:03.566: WARN/ActivityManager(73): Force finishing activity com.cjs.robotron/.RobotronActivity 
10-17 19:23:03.566: WARN/WindowManager(73): Failure taking screenshot for (216x135) to layer 21020 
10-17 19:23:04.073: WARN/ActivityManager(73): Activity pause timeout for ActivityRecord{407afbf0 com.cjs.robotron/.RobotronActivity} 
10-17 19:23:04.213: WARN/InputManagerService(73): Starting input on non-focused client [email protected] (uid=10036 pid=746) 
10-17 19:23:04.223: WARN/InputManagerService(73): Client not active, ignoring focus gain of: [email protected] 
10-17 19:23:04.913: INFO/ActivityManager(73): Displayed com.cjs.robotron/.RobotronActivity: +3s510ms 
10-17 19:23:10.893: DEBUG/dalvikvm(221): GC_EXPLICIT freed 18K, 5% free 6274K/6599K, paused 3ms+3ms 
10-17 19:23:14.797: WARN/ActivityManager(73): Activity destroy timeout for ActivityRecord{407afbf0 com.cjs.robotron/.RobotronActivity} 
10-17 19:23:15.973: DEBUG/dalvikvm(325): GC_EXPLICIT freed 8K, 6% free 6198K/6531K, paused 3ms+3ms 
+1

게시 stacktrace? :) – MrJre

+0

당신이 애플 리케이션이 충돌 할 때 당신이 Logcat에서 얻을 수있는 stacktrace를 생성합니다, 여기 게시 할 수 있습니까? – slayton

+0

Stacktrace를 추가했습니다. Sean 서식을 지정해 주셔서 감사합니다. – zotty

답변

0

OK, 나는 해결책을 찾을 수 있었다.

한 클래스에 이미지를로드하고 다른 클래스에 전달하여 표시하는 대신 두 번째 클래스에 컨텍스트를 전달하고로드 한 다음 거기에 표시합니다.

나는 이것이 왜 작동해야하는지 정말로 이해하지 못한다고 고백하지만, 지금은 쓸모없는 해결책을 위해 그렇게 할 것이다.