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
两次,它的工作原理。
工作形象:
不兼容的图像:
堆栈跟踪:
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
答
OK,我设法找到一个解决方案。
不是将图像加载到一个类中,而是将它们传递给另一个类来显示,我将该上下文传递给第二个类,然后加载它们并在那里显示它们。
我承认我并不真正理解为什么这应该起作用,但对于现在它会做的一个令人兴奋的解决方案。
发布stacktrace? :) – MrJre
当你的应用程序崩溃,它会产生一个你可以从Logcat获得的堆栈跟踪,你可以在这里发布? – slayton
添加堆栈跟踪,感谢格式化肖恩:) – zotty