Xamarin.Forms新建ContentPage出现"missing assembly"错误如何解决?
你提供的Page1的XAML代码本身语法没有错误,报错和XAML内容无关,可按照以下步骤排查修复:
1 检查命名空间与类匹配
- 打开Page1.xaml.cs后台文件,确认命名空间为
Pages,类为带partial关键字的Page1,继承自ContentPage,必须和XAML头部的x:Class="Pages.Page1"完全对应,不能出现命名空间、类名拼写不一致的问题。
2 检查页面根容器配置
- 要实现基于导航栈的页面切换,必须将App的启动根页面包裹在
NavigationPage中,打开App.xaml.cs修改启动代码:
// 正确写法 MainPage = new NavigationPage(new 你的启动首页类名()); // 错误写法(直接设置启动页无Navigation包裹,调用PushAsync会触发空引用报错) // MainPage = new 你的启动首页类名();
- 页面跳转的代码写法必须为:
// 放在触发跳转的事件逻辑中,必须加await关键字 await Navigation.PushAsync(new Page1());
3 清理项目缓存
- 右键解决方案选择「清理解决方案」
- 关闭VS,删除项目根目录下的bin、obj文件夹
- 重新打开VS生成项目运行即可
常见操作错误点
- 新建ContentPage后手动修改了类名/命名空间,没有同步修改XAML里的x:Class属性
- 没有配置NavigationPage作为根容器就直接调用PushAsync方法
- 跳转代码没有加await,异步操作异常未捕获导致崩溃
内容的提问来源于stack exchange,提问作者alonewolf
相关产品推荐
相关产品推荐

