При первом запуске приложения я создаю файл, используя context.getFilesDir(), чтобы получить путь к хранилищу. Это прекрасно работает, за исключением очень небольшого числа случаев этот метод возвращает корневую папку «/». В результате приложение падает с:Android context.getFilesDir() иногда возвращает корневую папку
java.io.FileNotFoundException:/my_filename (только для чтения файловой системы)
Когда я отладки на устройстве путь файла:
/data/data/my.package/files/my_filename
Этот код называется в OnCreate о наличии SherlockActivity. Таким образом, контекст - это действие. Как ни странно, неудача встречается редко, и нет никаких общности среди устройств, в которых она не работает.
Update: На основе обратной связи до сих пор, этот код должен работать и случайные сбои могут произойти из-за нечетные устройства. Попытка обойти эту проблему является излишним для моего случая использования, когда хранение файлов на самом деле не является обязательным. Я попытаюсь перенести свой код, чтобы использовать SharedPreferences.
Честно говоря, это звучит как сломанные устройства - возможно, ошибочные пользовательские установки rom ?. Это не вызов, который имеет какие-либо задокументированные режимы отказа. –
Возможно. Хотя процент отказов мал, с точки зрения абсолютных чисел, на которые стоит обратить внимание. Я не могу запретить этим пользователям загружать и оценивать приложение! –
Вы можете обнаружить это и выставить что-то, сказав «обнаруженный дефектный телефон», или использовать место резервного копирования в этом случае. –