为什么我的Android应用程序在第二次从gallery加载图像时崩溃?

为什么我的Android应用程序在第二次从gallery加载图像时崩溃?,android,image,gallery,Android,Image,Gallery,我写了一个应用程序,它可以使用android gallery应用程序加载图像,也可以使用cam拍照 当我现在使用gallery加载图像时,一切正常。当第二次执行代码以加载另一个映像时,应用程序崩溃 try { Uri data = intent.getData(); ContentResolver cr = this.getContentResolver(); Bitmap mBitmap = nul

我写了一个应用程序,它可以使用android gallery应用程序加载图像,也可以使用cam拍照

当我现在使用gallery加载图像时,一切正常。当第二次执行代码以加载另一个映像时,应用程序崩溃

            try {
            Uri data = intent.getData();
            ContentResolver cr = this.getContentResolver();
            Bitmap mBitmap = null;
            mBitmap = Media.getBitmap(cr, data);
            imageView.setImageBitmap(mBitmap);
        } catch(Exception e){
            showToast(this, "Failed loading image from gallery");
            return;
        }
代码在行mBimap=Media.getBitmapcr,data;处崩溃;。一切都初始化了,没有空值等等。奇怪的是:没有抛出异常,我没有进入catch块来确定出了什么问题

有人对此有想法吗?不允许我重复使用内容解析程序吗?我必须在第一次使用或类似的情况下释放它吗?

查看日志类并在代码块中放入一些调试语句,可能还有其他问题。如果您关心ContentResolver,请尝试在try块中首先将其设置为null,以便在加载第二个之前将其设置为null,但我认为情况并非如此。您确定没有从位图加载中获得OfMemoryError吗?如果您使用的是大图像,特别是如果它们不是RGB_565,那么要超过16/24MB的限制并不难。即使您有足够的内存,应用程序也可能崩溃,但您不能一次分配一个大数据块。请使用adb logcat、DDMS或Eclipse中的DDMS透视图检查日志。即使没有可捕获的异常,这些日志中也很可能有某种东西会指出您的困难来源。