Android强制关闭特定图像的应用程序。我该如何跟踪这个问题?

Android强制关闭特定图像的应用程序。我该如何跟踪这个问题?

问题描述:

我试图在画布上显示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获得的堆栈跟踪,你可以在这里发布? – slayton

+0

添加堆栈跟踪,感谢格式化肖恩:) – zotty

OK,我设法找到一个解决方案。

不是将图像加载到一个类中,而是将它们传递给另一个类来显示,我将该上下文传递给第二个类,然后加载它们并在那里显示它们。

我承认我并不真正理解为什么这应该起作用,但对于现在它会做的一个令人兴奋的解决方案。