我正在按照本教程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>
答案 0 :(得分:2)
我需要使用字符串资源
您不能在任意位置(例如FileProvider
元数据中)使用字符串资源。
在使用构建类型使用gradle构建应用程序时,我希望使用不同的字符串
然后每种构建类型具有不同的xml
资源,并且具有不同的FileProvider
元数据。 IOW,替换整个文件,而不是文件中的字符串。