Захват фото исключения Android при использовании строки из папки ресурсов

Я следую этому руководству https://developer.android.com/training/camera/photobasics, чтобы сделать снимок

я добавил следующий файл в папку xml

<paths xmlns:android = "http://schemas.android.com/apk/res/android">
<external-path name = "my_images"
    path = "Android/data/mypackage/files/Pictures" />

Захват изображения с использованием указанного выше файла работает идеально, как и ожидалось. но если я использовал ресурс @string, как показано ниже

<paths xmlns:android = "http://schemas.android.com/apk/res/android">
<external-path name = "my_images"
    path = "@string/mypath" />

<string name = "mypath">Android/data/mypackage/files/Pictures</string>

я получаю следующее исключение

Failed to find configured root that contains /storage/emulated/0/Android/data/mypackage/files/Pictures/IMG_20181018_134824_5769070663217749604.jpg

он отлично работает, если я не использую ресурс @string, мне нужно использовать строковые ресурсы, так как я хочу иметь другую строку при создании приложения с помощью gradle с использованием типов сборки

РЕДАКТИРОВАТЬ поставщик файлов в файле манифеста

 <provider
        android:name = "android.support.v4.content.FileProvider"
        android:authorities = "${applicationId}.provider"
        android:exported = "false"
        android:grantUriPermissions = "true">
        <meta-data
            android:name = "android.support.FILE_PROVIDER_PATHS"
            android:resource = "@string/mypath">
        </meta-data>
    </provider>
1
0
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

i need to use with string resources

Вы не можете использовать строковые ресурсы в произвольных местах, например в метаданных FileProvider.

i want to have different string when building app with gradle using build types

Затем используйте разные ресурсы xml для каждого типа сборки с разными метаданными FileProvider. IOW, замените весь файл, а не строку внутри файла.

можешь привести пример

has19 18.10.2018 14:11

как добавить путь к xml в строковых ресурсах <string name = "mypath"> @ xml / file_paths </string>

has19 18.10.2018 14:15

Я добавил manifestPlaceholder в градиент, например: manifestPlaceholder = [filepath: "@ xml / file_paths"], и это сработало .thx

has19 18.10.2018 14:38

Другие вопросы по теме