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

XAML报错找不到App.xaml中全局声明的Style资源原因问询

Xamarin.Forms全局样式找不到问题排查方案

可能成因

  • App.xaml生成配置异常:App.xaml默认生成操作应为嵌入的资源,若被误修改会导致资源字典未被正确加载到应用全局上下文
  • 启动时加载的Application类错误:各平台启动代码中加载的不是你定义的Fitness_App.App类,导致全局资源未被初始化
  • App类前后端声明不匹配:App.xaml中x:Class="Fitness_App.App"与App.xaml.cs的命名空间、类名不一致,会导致资源字典和App实例绑定失败
  • 资源访问时机错误:在页面InitializeComponent()方法执行前访问资源,或是用StaticResource访问运行时才加载的资源,都会触发找不到的报错
  • IDE缓存异常:设计时的缓存过期会导致IDE误报资源不存在,实际运行时功能正常

解决步骤

  • 核对App.xaml文件属性:右键App.xaml打开属性面板,确认生成操作是Embedded Resource,自定义工具字段值为MSBuild:UpdateDesignTimeXaml
  • 校验App类一致性:打开App.xaml.cs,确认其命名空间为Fitness_App、类名为App,且构造函数中没有清空Application.Current.Resources的逻辑
  • 检查平台启动代码:
    • Android项目MainActivity中LoadApplication(new App());加载的是Fitness_App.App实例
    • iOS项目AppDelegate中LoadApplication(new App());确认加载正确的App类
  • 调整资源引用逻辑:先尝试将引用改为{DynamicResource WorkoutStyle}测试,若可正常加载则说明是静态资源加载时机问题,确认引用样式的页面构造函数中InitializeComponent()是第一行执行的代码
  • 清理重建项目:删除解决方案下所有项目的bin、obj文件夹,重启IDE后重新编译,可解决绝大多数缓存导致的报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:15:03