C# Xamarin媒体插件在拍摄第二张照片时崩溃

C# Xamarin媒体插件在拍摄第二张照片时崩溃,c#,xamarin,plugins,C#,Xamarin,Plugins,我正在为Xamarin使用Plugin.Media(jamesmontemagno/MediaPlugin)插件,我在接受图片时遇到了问题。当我拍摄第二张照片(第一张照片很好)并点击接受图像时,整个应用程序崩溃,没有关于错误的输出。我已尝试捕获错误,但找不到错误发生的位置。我建议从Android清单中删除min SDK,但崩溃仍然发生 我曾尝试在VisualStudio中查看输出,但它总是不同的。我假设代码在获取图像并返回数据时起作用,很明显,它只在尝试接受第二个图像时发生 private st

我正在为Xamarin使用Plugin.Media(jamesmontemagno/MediaPlugin)插件,我在接受图片时遇到了问题。当我拍摄第二张照片(第一张照片很好)并点击接受图像时,整个应用程序崩溃,没有关于错误的输出。我已尝试捕获错误,但找不到错误发生的位置。我建议从Android清单中删除min SDK,但崩溃仍然发生

我曾尝试在VisualStudio中查看输出,但它总是不同的。我假设代码在获取图像并返回数据时起作用,很明显,它只在尝试接受第二个图像时发生

private string GetTimestamp(DateTime value)
    {
        string timestamp = value.ToString("yyyyMMddHHmmssfff");
        string filename = timestamp + ".jpg";
        return filename;
    }

public Command CaptureImage => new Command(TakePicture);            
    private async void TakePicture()
    {         
        await CrossMedia.Current.Initialize();           

        if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
        {
            //Some message
            return;
        }

        var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
        {
            Directory = "FoodSnap",
            Name = GetTimestamp(DateTime.Now) //Gets a unique file name,
            PhotoSize = Plugin.Media.Abstractions.PhotoSize.Custom,
            CustomPhotoSize = 50
        });

        if (file == null)
            return;

        FilePath = file.Path;       
    }

我完全不明白为什么会发生这种情况。当用于拍摄图像的页面中的数据发生更改时,我也无法刷新ViewModel。我不禁怀疑这是否与此有关。

我通过测试每一行代码解决了这个问题。一旦我删除
PhotoSize=Plugin.Media.Abstractions.PhotoSize.Custom
我就可以根据需要拍摄任意多的照片。我确实在插件中使用了Github信息


我想知道我做错了什么导致了这个错误。我认为我误解了Github上的教程。

对此不确定,但您是否尝试过将扩展名添加到文件名中?(比如+“.jpg”)即使它似乎与ViewModel有关,也没有太多其他的东西可以在MediaPlugin中检查。有一个崩溃日志将有助于了解什么是错误的!我有一个添加文件扩展名的方法。如前所述,它将处理第一个图像,但不处理第二个图像及其后的图像。我想它抓住了第一个图像并崩溃了……我又试了两次,这是崩溃前的最后一次输出:07-12 22:35:05.395 E/mono rt(4442):ed1c3000-ed1c4000--p 00000000:00[anon:bionic TLS guard page]07-12 22:36:07.929 E/mono rt(4687):f0478000-f047c000 rw-p 00000000:01 12615/dev/ashmem/dalvik thread local mark stack(已删除)这可能是模拟器的一个问题,因为我刚刚验证它在我的像素上工作。