android java.io.File.fixSlashes(File.java:185)
Posted
技术标签:
【中文标题】android java.io.File.fixSlashes(File.java:185)【英文标题】: 【发布时间】:2015-09-19 06:47:14 【问题描述】:我在控制台崩溃和 anrs 中遇到错误。有时会出现此错误,我找不到问题所在。
java.lang.NullPointerException
at java.io.File.fixSlashes(File.java:185)
at java.io.File.<init>(File.java:134)
图片保存功能代码为:
public static String sharePhoto(Context context, Bitmap bmp)
File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/Folder");
boolean success = true;
String file_path = null;
if (!folder.exists())
success = folder.mkdir();
if (success)
file_path = folder + "/Img_" + System.currentTimeMillis() / 1000 + ".jpg";
OutputStream os = null;
try
os = new FileOutputStream(file_path);
bmp.compress(Bitmap.CompressFormat.JPEG, 100, os);
catch (IOException e)
e.printStackTrace();
else
// Do something else on failure
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(file_path);
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
context.sendBroadcast(mediaScanIntent);
return file_path;
【问题讨论】:
你有需要的权限吗? 是的,android.permission.WRITE_EXTERNAL_STORAGE 显示所有代码。显示整个异常。 What is a Null Pointer Exception, and how do I fix it?的可能重复 你应该再检查一次: File f = new File(file_path); --> 这里的file_path为null 【参考方案1】:试试这个:
File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/MyFolder");
问题是getExternalStorageDirectory()
返回File
。您需要获取该文件的绝对路径并与"/Pictures/MyFolder"
连接。
【讨论】:
好的,我试几天看看效果。谢谢。以上是关于android java.io.File.fixSlashes(File.java:185)的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )