захватывать исключение фото android при использовании строки из папки ресурсов - PullRequest
0 голосов
/ 18 октября 2018

Я следую этому уроку 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 голосов
/ 18 октября 2018

мне нужно использовать строковые ресурсы

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...