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

Xamarin构建Master Detail Page触发“Exception has been thrown by the target of an invocation”错误

搞定Master Detail Page里的“Exception has been thrown by the target of an invocation”错误

我看你登录后进入Home这个MasterDetailPage时,弹出了这个反射调用的异常,但界面还停在Home页。这类错误大多是XAML/代码里有未正确初始化的元素、导航逻辑不对,或者资源引用出问题导致的。结合你贴的代码,我整理了几个排查和修复方向:

1. 先检查图片资源有没有加对

你的XAML里用了background.jpg,如果这个图片没正确放到各个平台的资源文件夹里(比如Android的Drawable、iOS的Resources),或者文件名大小写不对(Android是区分大小写的),加载页面时就会炸锅。

  • 确认background.jpg已经加到对应平台的资源目录,并且设置了正确的生成操作:Android设成AndroidResource,iOS设成BundleResource。
  • 核对文件名拼写,别出现大小写不匹配的情况。

2. 修正Logout按钮的导航逻辑

你现在Logout用的是await Navigation.PushModalAsync(new Login_Page());,但Home是MasterDetailPage,它的导航栈和普通ContentPage不一样,直接PushModal容易出导航上下文的问题。建议改成下面两种方式之一:

如果登录页是通过PushModalAsync打开Home的,那直接弹出当前页面回到登录页:

private async void Handle_Clicked_1(object sender, System.EventArgs e)
{
    await Navigation.PopModalAsync();
}

如果登录后是把Home设成了主页面,那直接替换主页面:

private void Handle_Clicked_1(object sender, System.EventArgs e)
{
    App.Current.MainPage = new Login_Page();
}

3. 检查Create_Activity页面本身有没有问题

点击“Create Activity”时你直接把Detail设成了new Create_Activity(),如果这个页面自己初始化就有问题(比如XAML里有未定义的控件、绑定错误),也会触发这个异常。

  • 单独跑一下Create_Activity页面,确认它能正常打开、显示。
  • 检查它的XAML和代码有没有语法错误,或者引用了不存在的资源。

4. 抓一下具体的异常细节

这个泛泛的反射异常背后肯定有更具体的内部错误,你可以在Home的构造函数里加个try-catch,或者在App.xaml.cs里加全局异常捕获,就能看到到底哪里错了:

public Home()
{
    try
    {
        InitializeComponent();
    }
    catch (Exception ex)
    {
        // 输出详细错误信息到调试窗口
        System.Diagnostics.Debug.WriteLine($"初始化出错: {ex.Message}");
        if (ex.InnerException != null)
        {
            System.Diagnostics.Debug.WriteLine($"内部错误原因: {ex.InnerException.Message}");
        }
    }
}

这样你就能在调试输出里看到具体的错误,不用对着泛泛的反射异常头疼了。

5. 确认MasterDetailPage的导航结构是否正确

MasterDetailPage一般都是作为应用的主页面来用的,登录成功后应该这样设置:

App.Current.MainPage = new Home();

别用PushAsync或者PushModalAsync来打开它,不然导航栈会乱掉,也容易出异常。


内容的提问来源于stack exchange,提问作者Mohamed Al Sabbagh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:16:59