1

我制作了一个应用程序,允许用户使用我的应用程序拍摄并编辑它。我拥有一个三星银河恒星,它在它上面运行良好。我让我的朋友下载了该应用程序,当她在手机上对其进行测试时,每当她拍照并点击“保存”时,我的应用程序就会崩溃。她使用银河s3。

这是我拍照时的代码

case R.id.ibTakePic:

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+File.sep    arator + fileName2 + ".jpg");
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
rotatePic = true;
startActivityForResult(i,cameraData);
break;

这是我的结果代码..

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
            Uri selectedImage = data.getData();
            String[] filePathColumn = { MediaStore.Images.Media.DATA };
            pictake = true;
            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String picturePath = cursor.getString(columnIndex);
            cursor.close();
            rotatePic = false;
            bmpReceive = rotate(picturePath);

            bmpOriginal = bmpReceive; 

            picTaken.setImageBitmap(bmpReceive);
   //         ImageView imageView = (ImageView) findViewById(R.id.imgView);
     //       imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));


        }
4

3 回答 3

1

我有一个类似的问题,所以我切换到这个:

Uri uri= data.getData();
InputStream in = context.getContentResolver().openInputStream(uri);
Bitmap b = BitmapFactory.decodeStream(in);

希望能帮助到你

于 2013-10-28T15:19:02.250 回答
0

好吧,日志有帮助。但这是我的猜测。

如果您检查文档。 http://developer.android.com/reference/android/content/ContentResolver.html

查询可以返回 Cursor 对象或 null。在您的代码中,您没有检查空值。我建议你尝试一下。在任何情况下,只要有可能返回空值,您就应该始终进行空值检查。

如果您可以提供日志,那么我们可以告诉您确切的问题。

于 2013-10-28T14:01:43.423 回答
0

也许位图太大,你得到一个内存不足。检查该页面以了解如何处理这种情况:

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

于 2013-10-28T14:57:43.807 回答