未找到嵌入资源

No embedded resource found

我有一个 xamarin 表单应用程序,其中第一页有一个显示嵌入式资源的图像控件。通常,当我 运行 应用程序时,它在启动期间失败并出现以下错误:

[libc] WARNING: generic atexit() called from legacy shared library
[monodroid-gc] GREF GC Threshold: 46800
[MonoDroid] UNHANDLED EXCEPTION:
[MonoDroid] Xamarin.Forms.Xaml.XamlParseException: No embeddedresources found for SeeVee.StartPage
[MonoDroid]   at Xamarin.Forms.Xaml.XamlLoader.Load (Xamarin.Forms.BindableObject view, System.Type callingType) [0x00000] in <filename unknown>:0 
[MonoDroid]   at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage] (SeeVee.StartPage view, System.Type callingType) [0x00000] in <filename unknown>:0 
[MonoDroid]   at SeeVee.StartPage.InitializeComponent () [0x00000] in <filename unknown>:0 
[MonoDroid]   at SeeVee.StartPage..ctor () [0x00000] in <filename unknown>:0 
[MonoDroid]   at SeeVee.App.GetMainPage () [0x00000] in <filename unknown>:0 
[MonoDroid]   at SeeVee.Android.MainActivity+<OnCreate>d__0.MoveNext () [0x00000] in <filename unknown>:0 
[mono] 
[mono] Unhandled Exception:
[mono] Xamarin.Forms.Xaml.XamlParseException: No embeddedresources found for SeeVee.StartPage
[mono]   at Xamarin.Forms.Xaml.XamlLoader.Load (Xamarin.Forms.BindableObject view, System.Type callingType) [0x00000] in <filename unknown>:0 
[mono]   at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage] (SeeVee.StartPage view, System.Type callingType) [0x00000] in <filename unknown>:0 
[mono]   at SeeVee.StartPage.InitializeComponent () [0x00000] in <filename unknown>:0 
[mono]   at SeeVee.StartPage..ctor () [0x00000] in <filename unknown>:0 
[mono]   at SeeVee.App.GetMainPage () [0x00000] in <filename unknown>:0 
[mono]   at SeeVee.Android.MainActivity+<OnCreate>d__0.MoveNext () [0x00000] in <filename unknown>:0 
[mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: Xamarin.Forms.Xaml.XamlParseException: No embeddedresources found for SeeVee.StartPage
[mono-rt]   at Xamarin.Forms.Xaml.XamlLoader.Load (Xamarin.Forms.BindableObject view, System.Type callingType) [0x00000] in <filename unknown>:0 
[mono-rt]   at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage] (SeeVee.StartPage view, System.Type callingType) [0x00000] in <filename unknown>:0 
[mono-rt]   at SeeVee.StartPage.InitializeComponent () [0x00000] in <filename unknown>:0 
[mono-rt]   at SeeVee.StartPage..ctor () [0x00000] in <filename unknown>:0 
[mono-rt]   at SeeVee.App.GetMainPage () [0x00000] in <filename unknown>:0 
[mono-rt]   at SeeVee.Android.MainActivity+<OnCreate>d__0.MoveNext () [0x00000] in <filename unknown>:0 

我必须在 xamarin studio 中重新构建应用程序并重新运行,它可以正常工作。呸!这有时会变得很累。我希望 xamarin 知道这个愚蠢的错误并会修复它。

这是一个 bug。由于某种原因,它的状态是 RESOLVED FIXED,但它似乎根本没有修复。在 XS 上 mac 无论如何。

作为解决方法,抛出异常的文件 SomeClass.g.cs 只需对生成的文件进行编辑,保存,然后重新构建。比重建一切快一点。

当然,这意味着每次更改 .xaml 文件时,都必须构建两次。

我有一个类似的错误,并通过更正我的 xaml 文件中的 class 名称来修复它。 我的意思是在我页面的 x:Class 属性中。

我正在为 Mac 使用 Visual Studio Community 2017。我将我的引号字符从双引号 (") 更改为单引号 (') 并格式化了我的文件。每当初始化格式化 ContentPage 时,我突然开始收到此错误。

我回到了:

'Visual Studio Community' -> 'Preferences' -> 'Source Code' -> 'Code Formatting' -> 'XML document' -> 'XML Format' -> Quote char

将其改回双引号,将我用单引号格式化的文档格式化回双引号 ('Edit'->'Format'->'Format Document'),现在它再次完美运行。

这解决了我的问题:

'Xamarin.Forms.Xaml.XamlParseException has been thrown'
'No embeddedresource found for YourNamespace.YourContentPageName'

希望对您有所帮助!

升级到 visual studio 2017 和最新版本的 Xamarin 后,无论我尝试什么,这都发生在我身上。这是正确的 class 名称。 XAML 中的任何更改都没有任何意义,并且不断被踢出 ios 构建和 android 构建,并出现嵌入资源未找到错误。唯一的解决方案是将 xaml 和代码保存在记事本中,然后从项目中永久删除 class。将新的 ContentPage 添加到您的 Xamarin.Forms 可移植项目中,并将其命名为不同的名称。将您的代码粘贴回去并保存。更新您的项目以查找新的 ContentPage 名称。然后它将再次为您工作。

对我有用的修复如下

在主项目 .csproj 文件中,我发现我所有的 .xaml 文件格式如下:

<EmbeddedResource Include="Source\Home\HomeContentView.xaml"> <Generator>MSBuild:UpdateDesignTimeXaml</Generator> </EmbeddedResource>

除了一个,失败的那个多了一行,看起来像这样

<LogicalName>MyProject.Home.HomeContentView.xaml</LogicalName>

删除此行解决了问题。我还保存了我的文件,清理并重建了项目。

另一个选项是检查该项目是否在过去可能被排除的 ItemGroup 的删除列表中: