Я портирую приложение C ++ Linux на Android с помощью NDK и тестирую с помощью эмулятора. Приложение пытается создать /etc/myApp
каталог и не удается, потому что компонент /etc
не имеет необходимых разрешений для записи файловой системы, необходимых для создания.
Должно ли мое приложение создавать такой каталог? я использовал adb
проверить и попытаться сделать каталог из оболочки, и он тоже не работает:
Сбой mkdir для myApp, файловая система только для чтения
Означает ли файловая система, доступная только для чтения в adb, для моего приложения?
Может ли мое приложение рассчитывать на создание этого каталога, и если нет, есть ли другое местоположение, более подходящее?
Нет, ты не должен этого делать. Приложениям Android запрещено писать в системные каталоги.
Вероятно, вам следует создать этот каталог в частной области хранения вашего приложения. Как правило, лучше всего найти путь к нему из Java (не жестко его кодировать), а затем передать его на нативную сторону.
В зависимости от ваших потребностей в файле, ExternalStorage также может быть вариантом, особенно во время разработки, когда вам может потребоваться легко изменить его вручную — хотя имейте в виду, что другие вещи также смогут изменить его там. Опять же, вы должны определить путь на вашем конкретном устройстве в Java, а затем передать его в собственный код.
Других решений пока нет …