使用资源文件夹中的字符串时捕获照片 android 异常
capturing photo android exception when using string from resources folder
我正在学习本教程 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>
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,替换整个文件,而不是文件中的字符串。
我正在学习本教程 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>
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,替换整个文件,而不是文件中的字符串。