Александр Васюченко: не уверен что это решит проблему, в лjгах явно ругается на отсутствие разрешение, но попробуйте путь писать с помощью Environment, и еще раз проверьте манифест
Дело в том, что Environment выдает путь для встроенной памяти (primary external storage). Для съемной microSD карты (secondary external storage) в API андроида нет функционала. Я даже сомневаюсь возможно ли программно на нее писать, но все же задал вопрос уточнить. Разрешение то, конечно же стоит давно в моем приложении.
Александр Васюченко: писать программно можно только не все так просто начиная с Android 4.4. Например читаем серию постов Mark L. Smith .
Если без разницы куда лиш бы на sd-card то используем тот путь что получаем через Environment.getExternalStorageDirectory(); (будет возвращен путь внутри папки приложения на sdcard)