2015-07-01 2 views
5

У меня ошибка в консольных авариях & anrs. Иногда эта ошибка появляется, и я не могу найти, где проблема.android java.io.File.fixSlashes (File.java:185)

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; 
} 
+0

У вас есть необходимые разрешения? – Aleksandar

+0

Да, android.permission.WRITE_EXTERNAL_STORAGE –

+0

Показать весь код. Показать полное исключение. –

ответ

2

Попробуйте это:

File folder = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/Pictures/MyFolder"); 

Дело в том, что getExternalStorageDirectory() возвращается File. Вам нужно получить абсолютный путь к этому файлу и объединить с "/Pictures/MyFolder".

+0

Хорошо, я попробую его в течение нескольких дней и посмотрю результаты. Благодарю. –

+1

Будьте готовы принять ответ :) – Aleksandar

+0

Не исправить мою проблему. Я обновил вопрос. –

Смежные вопросы