Android应用程序在关闭InputStream时死亡

Android应用程序在关闭InputStream时死亡,android,inputstream,Android,Inputstream,我有一个OpenGL游戏,有两个图像,一个是纹理图集,一个是单个图像。当我试图打开单个OpenGL对象时,应用程序在关闭它时死亡。 守则: InputStream is = context.getResources().openRawResource(texture); Bitmap bitmap = null; try { bitmap = BitmapFactory.decodeStream(is); }

我有一个OpenGL游戏,有两个图像,一个是纹理图集,一个是单个图像。当我试图打开单个OpenGL对象时,应用程序在关闭它时死亡。 守则:

        InputStream is = context.getResources().openRawResource(texture);
        Bitmap bitmap = null;
        try {
            bitmap = BitmapFactory.decodeStream(is);
        } finally {
            try {
                is.close();
                is = null;
                Log.i("log", "try");
            } catch (IOException e) {
                Log.i("log", "Catch");
            }
        }

它对输入流进行解码,但在关闭后进入捕获。我真的不明白是什么问题。使用其他纹理打开和关闭InputStreams效果良好。

请尝试以下代码打印stacktrace

final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
ex.printStackTrace(printWriter);
String stacktrace = result.toString();
Log.i("log", "Catch" + stacktrace);

然后,希望您能得到您的答案:)

我打赌在堆栈跟踪中有一些很好的线索可以找到问题的根源,请尝试记录堆栈跟踪:Log.I(“Log”,“Catch”,e);这是在模拟器上发生的吗?对于“e”,什么都不会发生,LogCat只写出“Catch”。不,它发生在模拟器和手机上(沃达丰845)。在结束之后,在catch中的步骤,出现了LogCat中的许多调试消息,应用程序死亡。我已经将我的纹理放入了我的纹理图集,但也许明天我会尝试一下,看看上面说了什么,谢谢!