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

.NET MAUI 10+CommunityToolkit v13嵌套弹窗Android崩溃问题咨询

.NET MAUI + CommunityToolkit.Maui v13.0.0 嵌套弹窗Android崩溃问题解答

问题背景

使用.NET MAUI 10 + CommunityToolkit.Maui v13.0.0(已迁移至Popup v2),嵌套弹窗场景下Android端出现崩溃:打开弹窗A后,通过A内按钮打开弹窗B,B可正常显示,但调用CloseAsync(result)关闭B时触发Android.Runtime.JavaProxyThrowable异常。该场景在v9.1.1版本中可正常工作。

最小复现代码

PopupA 代码

public partial class PopupA : Popup
{
    public PopupA() => InitializeComponent();

    private async void OpenPopupB_Clicked(object sender, EventArgs e)
    {
        var popupB = new PopupB();
        var result = await this.ShowPopupAsync<string>(popupB);
        Console.WriteLine($"Popup B result: {result}");
    }
}

PopupA.xaml

<VerticalStackLayout>
    <Button Text="Open Popup B" Clicked="OpenPopupB_Clicked"/>
</VerticalStackLayout>

PopupB 代码

public partial class PopupB : Popup
{
    public PopupB() => InitializeComponent();

    private async void CloseButton_Clicked(object sender, EventArgs e)
    {
        await CloseAsync("Ok"); // 崩溃发生在此处
    }
}

PopupB.xaml

<VerticalStackLayout>
    <Label Text="This is Popup B"/>
    <Button Text="Close" Clicked="CloseButton_Clicked"/>
</VerticalStackLayout>

问题解答

1. CommunityToolkit.Maui v13.0.0是否官方支持嵌套弹窗场景?

官方明确支持嵌套弹窗场景,Popup v2的设计包含对多层弹窗的支持,但v13.0.0的Android端存在特定bug,导致嵌套弹窗关闭时崩溃,这属于版本缺陷,而非功能不支持。

2. 针对该Android崩溃的已知问题与解决方案?

这是v13.0.0版本的已知Android平台bug,官方已在v13.0.1版本完成修复:

  • 优先解决方案:将CommunityToolkit.Maui升级至v13.0.1或更高版本,升级后嵌套弹窗关闭逻辑可正常运行。
  • 临时 workaround(无法立即升级时):
    • 避免在弹窗内直接调用ShowPopupAsync,改为通过宿主页面触发子弹窗的打开(比如使用MessagingCenter发送消息,让页面接收后打开弹窗B)
    • 将弹窗内的事件处理改为绑定MVVM命令,确保异步操作的上下文稳定,避免上下文丢失导致的崩溃

3. 最新版本中处理嵌套弹窗的推荐方式?

  • 官方原生方式:在父弹窗中直接调用this.ShowPopupAsync<TResult>(子弹窗),这是最简洁的嵌套弹窗实现方式,修复后的版本可稳定运行。
  • MVVM架构推荐:使用CommunityToolkit.Maui提供的PopupService统一管理弹窗的打开与关闭,通过依赖注入获取服务,在ViewModel中调用ShowPopupAsync和CloseAsync,避免直接在视图层操作弹窗,提升代码可维护性。
  • 生命周期注意事项:确保子弹窗关闭时,父弹窗仍处于活跃状态,避免在异步操作中丢失弹窗上下文(比如避免在已释放的弹窗实例上调用方法)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:05:04