You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms中调用Camera拍照触发中断状态错误求助

Xamarin.Forms相机项目拍照按钮触发无代码断点错误问题

我开发了一个Xamarin.Forms相机项目,点击拍照按钮时触发错误,错误提示如下:

Your app has entered a break state, but there is no code to show because all threads were executing external code (typically system or framework code)

错误集中在TakePhotoAsync方法调用处,项目已引入Xam.Plugin.Media NuGet包,且遵循相关文档实现,但问题仍未解决。

C#代码实现

private async void TakeAPhotoButton_OnClicked(object sender, EventArgs e)
{
    await CrossMedia.Current.Initialize();

    if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
    {
        await DisplayAlert("No Camera", ":( No camera avaialble.", "OK");
        return;
    }

    var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
    {
        Directory = "Test",
        SaveToAlbum = true,
    });

    if (file == null)
        return;

    await DisplayAlert("File Location", file.Path, "OK");

    image.Source = ImageSource.FromStream(() =>
    {
        var stream = file.GetStream();
        file.Dispose();
        return stream;
    }); ;
}

错误触发的代码片段

var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
    Directory = "Test",
    SaveToAlbum = true,
});

MainPage.XAML代码

<ScrollView>
    <StackLayout>
        <Label Text="Welcome to Camera Access In Xamarin forms"/>
        <Button Text="Take a Photo"    
                x:Name="takePhoto"    
                BackgroundColor="Fuchsia"    
                Clicked="TakeAPhotoButton_OnClicked"/>
        <Button Text="Pick a Photo"    
                x:Name="pickPhoto"    
                BackgroundColor="Blue"    
                Clicked="PickAPhotoButton_OnClicked"/>
        <Button Text="Take A Video"    
                x:Name="takeVideo"    
                BackgroundColor="Gray"    
                Clicked="TakeAVideoButton_OnClicked"/>
        <Button Text="Pick A Video"    
                x:Name="pickVideo"    
                BackgroundColor="Green"    
                Clicked="PickAVideoButton_OnClicked"/>
        <Image x:Name="image"/>
    </StackLayout>
</ScrollView>

我参考了C# Corner的Xamarin.Forms相机应用教程以及YouTube上的Xamarin.Forms使用相机相关视频。

内容的提问来源于stack exchange,提问作者Mizanur Rahaman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:45:26