我需要在安卓设备上从摄像头保存一张图片。我在清单文件中使用了写外部存储的权限,同时使用如下代码:
File dir = new File(Environment.getExternalStorageDirectory(), "Test");
if (!dir.exists() || !dir.isDirectory())
dir.mkdirs();
String path = dir.getAbsolutePath();
Log.d(TAG, path); //log show the path
File file = new File(dir.getAbsolutePath() + "/Pic.jpg");
Log.d(TAG, file.getAbsolutePath()); //again path is shown here
outStream = new FileOutputStream(file);
outStream.write(bytes);
outStream.close();
Log.d(TAG, "onPictureTaken - wrote bytes: " + bytes.length); //fail here
} catch (FileNotFoundException e) {
Log.d(TAG, "not done"); //error is here (this exception is thrown)
} catch (IOException e) {
Log.d(TAG, "not");
} finally { }
我也尝试了使用mkdir()代替mkdirs(),但结果相同。
有什么想法是代码出了什么问题吗?
谢谢
e
作为第三个参数添加到你的Log.d()
调用中,然后使用LogCat来查看与崩溃相关的Java堆栈跟踪。 - CommonsWare