Я пытаюсь установить приложение на кодовое имя для установки на внешнее хранилище, поэтому мне не нужны права root для отладки того, что записывается в хранилище, поскольку оно не работает на Android, даже если оно работает в симуляторе.
Сначала я предположил, что только codename1.arg.android.installLocation=preferExternal
в codenameone_settings.properties
сделает это, но приложение все еще устанавливается во внутреннее хранилище даже после изменения этого installLocation, чтобы предпочесть External вместо auto.
Так что я подумал, что, возможно, ему нужны кавычки для Предпочитаемого и продолжил давать их (=\"preferExternal\"
) - это дает ошибку сборки манифеста на сервере сборки, которая показывает манифест с двойными кавычками, поэтому оригинал был правильным форма.
Из сообщения об ошибке я увидел, что
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="false" />
поэтому я подумал, что, возможно, это необходимо для установки на внешнее хранилище. Я попытался добавить codename1.arg.android.permission.WRITE_EXTERNAL_STORAGE=true
в файл свойств, как подсказывает документация, но это не помогло при объединении манифеста:
Результат слияния: ОШИБКА
/tmp/build6786351350686020379xxx/happy2/src/main/AndroidManifest.xml:48:7-69 Ошибка:
Элемент использует-разрешение # android.permission.WRITE_EXTERNAL_STORAGE на AndroidManifest.xml: 49: 5-81, дублированный с элементом, объявленным на AndroidManifest.xml: 45: 5-106
/tmp/build6786351350686020379xxx/happy2/src/main/AndroidManifest.xml Ошибка:
Проверка не удалась, выход
Хорошо, поэтому я подумал, что это всегда включено, и поэтому мне просто нужно изменить требуемое значение на true, и следовал тому, что сказано в документации, добавив codename1.arg.android.permission.WRITE_EXTERNAL_STORAGE.required=true
к свойствам. Это строит, но фактическое разрешение не установлено на android:required="true"
, но остается ложным.
Использование тега android.xpermissions
для вставки искомой строки <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:required="true" />
действительно вставляет его в манифест, но конструктор манифеста выдает ошибку, так как ложная строка по умолчанию все равно будет там:
Результат объединения: ОШИБКА
/tmp/build5902390972256151175xxx/happy2/src/main/AndroidManifest.xml:48:3-103 Ошибка:
Элемент использует-разрешение # android.permission.WRITE_EXTERNAL_STORAGE на AndroidManifest.xml: 48: 3-103, дублированный с элементом, объявленным на AndroidManifest.xml: 45: 5-106
/tmp/build5902390972256151175xxx/happy2/src/main/AndroidManifest.xml Ошибка:
Проверка не удалась, выход
Таким образом, остается вопрос, как мне настроить проект с кодовым именем для установки на внешнее хранилище в Android ?