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 卡时应用程序退出的主要内容,如果未能解决你的问题,请参考以下文章
保存到 sd 卡的图像不会出现在 Android 图库应用中