C# Xamarin Plugin.Media“;无法获取文件位置";

C# Xamarin Plugin.Media“;无法获取文件位置";,c#,xamarin,plugins,xamarin.android,C#,Xamarin,Plugins,Xamarin.android,非常奇怪的情况。我的xml文件完全按照自述文件所说的方式设置。但是,当我尝试访问CrossMedia.Current.TakePhotoAsync()时,出现以下异常: 无法获取文件位置。这很可能意味着您的Android清单文件中没有设置文件提供程序信息。请检查有关如何在项目中设置此项的文档 但是,以下是我的AndroidManifest.xml: 这里是文件路径 下面是我尝试访问TakePhotoAsync()函数的代码 试试看{ _mediaFile=wait CrossMedia.

非常奇怪的情况。我的xml文件完全按照自述文件所说的方式设置。但是,当我尝试访问CrossMedia.Current.TakePhotoAsync()时,出现以下异常:

无法获取文件位置。这很可能意味着您的Android清单文件中没有设置文件提供程序信息。请检查有关如何在项目中设置此项的文档

但是,以下是我的AndroidManifest.xml:


这里是文件路径


下面是我尝试访问TakePhotoAsync()函数的代码

试试看{
_mediaFile=wait CrossMedia.Current.TakePhotoAsync(新存储摄像头)选项
{
Directory=“temp”,
SaveToAlbum=false,
压缩质量=75,
自定义photosize=50,
PhotoSize=PhotoSize.MaxWidthHeight,
MaxWidthHeight=2000,
DefaultCamera=CameraDevice.Front,
Name=“test.jpg”
});
if(_mediaFile==null)返回;
image.Source=ImageSource.FromStream(()=>
{
var stream=_mediaFile.GetStream();
回流;
});
}
捕获(例外情况除外)
{
等待当前.MainPage.DisplayAlert(“错误”,例如消息“确定”);
}

看看答案

引用

@Kevelop说:

当我使用下面的文件_paths.xml文件时(与mediaPlugin自述中提到的完全相同!)


仅当Android设置中的默认内存位置设置为“内部内存”时,它才起作用。当设置为SD卡时,它不工作

当我将文件_paths.xml文件更改为以下内容时:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <external-path name="my_images" path="Android/data/com.plugin.mediatest/files/Pictures" />
</paths>

它适用于内部存储器和SD卡

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <external-path name="my_images" path="Android/data/com.plugin.mediatest/files/Pictures" />
</paths>