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 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)

【Android笔记】android Toast

图解Android - Android核心机制

Android游戏开发大全的目录