Одной из возможных ошибок в этом может быть то, что вы не установили соответствующие разрешения
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Однако хранение данных на SD-карте считается небезопасным. Потому что каждое приложение, у которого есть разрешения на хранение данных в хранилище sd, может обращаться к базе данных.
Изменить: Другая возможная проблема заключается в том, что внешнее хранилище может быть недоступно. Вы должны убедиться, что ваше внешнее хранилище доступно для записи. Одним из методов будет определение состояния через getExternalStorageState
(см. Ссылку здесь ).
getExternalStorageState() returns MEDIA_SHARED if the media is present not mounted, and shared via USB mass storage.
Ссылки . Здесь также есть сообщение о переполнении стека при проверке состояния: Ошибка записи текстового файла на SD-карту