Android:尝试将图像保存到 SD 卡时应用程序退出

Posted

技术标签:

【中文标题】Android:尝试将图像保存到 SD 卡时应用程序退出【英文标题】:Android: App exits when trying to save image to SD card 【发布时间】:2012-06-04 00:17:31 【问题描述】:

我正在尝试将图像保存到 SD 卡并为其添加了一些代码。但是在单击相机中的“确定”/复选标记后,我的应用程序退出了。我是否必须检查我要尝试的目录将其存储在存在中?我该怎么做?...!file.exists()file.mkdirs? ..在我的代码中,我尝试将其存储在每个 SD 卡中存在的 /android 文件夹中。

           file = new File(Environment.getExternalStorageDirectory().getPath()
                 + "/Android/" + "bhe_app" + ".jpg");

    imageUri = Uri.fromFile(file);

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        i.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

        startActivityForResult(i, cameraData);

protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) 
        Bundle extras = data.getExtras();
        bmp = (Bitmap) extras.get("data");
        iv.setImageBitmap(bmp);


    

【问题讨论】:

【参考方案1】:

在创建文件之前创建目录。

boolean createdDirectory = new File(Environment.getExternalStorageDirectory().getPath() + "/directory1/directory2/directory3/").mkdirs();

变量createdDirectory 将是

当且仅当目录被创建时为真,连同所有 必要的父目录;否则为假

您必须确保您的应用有权写入 SD 卡(检查您的 AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

【讨论】:

【参考方案2】:

您是否在AndroidManifest.xml 中授予了Write_External_Storage 的权限,这对于将照片保存在sd 卡上很重要

【讨论】:

我刚刚做了..但是在我点击相机的“确定”/复选标记按钮后应用程序仍然退出..这是因为没有这样的目录吗?...以及如何检查目录是否存在并且它没有创建它..与 dir.mkdirs() 有什么关系? 是什么错误,在Log中查看,尝试直接将图片存储在sd卡上,而不是放在目录中 我正在查看谷歌的教程并对代码进行了一些更改。现在,图像已保存,但是一旦我点击相机的复选标记,应用程序就会退出。我做了一些更改如下: file = new File( Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "BHE App");mediaFile = newFile(file.getPath()+File.separator +"Image1.jpg"); if (!file.exists()) 尝试 file.createNewFile(); catch (IOException e) e.printStackTrace(); imageUri = Uri.fromFile(mediaFile); 我用 imageUri 说: i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); i.putExtra(MediaStore.EXTRA_OUTPUT,imageUri);

以上是关于Android:尝试将图像保存到 SD 卡时应用程序退出的主要内容,如果未能解决你的问题,请参考以下文章

从android寻呼机将图像保存到sd卡

保存到 sd 卡的图像不会出现在 Android 图库应用中

从 JSON url 下载图像不起作用。 [关闭]

Android - 将图像从 URL 保存到 SD 卡

Android:BroadcastReceiver 意图检测拍摄的相机照片?

使用名称中的当前日期和时间将图像保存到 sd 不起作用