Xamarin 找不到嵌入的资源

Xamarin 找不到嵌入的资源,xamarin,xamarin.forms,xamarin-studio,Xamarin,Xamarin.forms,Xamarin Studio,我有一个xamarin表单应用程序,其中第一个页面有一个显示嵌入式资源的图像控件。通常,当我运行应用程序时,它会在启动过程中失败,并出现以下错误: [libc] WARNING: generic atexit() called from legacy shared library [monodroid-gc] GREF GC Threshold: 46800 [MonoDroid] UNHANDLED EXCEPTION: [MonoDroid] Xamarin.Forms.Xaml.XamlP

我有一个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 
[libc]警告:从旧版共享库调用泛型atexit()
[单机器人gc]GREF gc阈值:46800
[MonoDroid]未处理的异常:
[MonoDroid]Xamarin.Forms.Xaml.XamlParseException:找不到SeeVee.StartPage的嵌入资源
[MonoDroid]位于Xamarin.Forms.Xaml.XamlLoader.Load(Xamarin.Forms.BindableObject视图,System.Type callingType)[0x00000]中:0
[MonoDroid]位于Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage](请参见0中的Vee.StartPage视图,System.Type callingType)[0x00000]
[MonoDroid]位于:0中的SeeVee.StartPage.InitializeComponent()[0x00000]处
[MonoDroid]位于SeeVee.StartPage..ctor()[0x00000]中:0
[MonoDroid]位于SeeVee.App.GetMainPage()[0x00000]中:0
[MonoDroid]位于SeeVee.Android.MainActivity+d_u0.MoveNext()[0x00000]中:0
[单声道]
[mono]未处理的异常:
[mono]Xamarin.Forms.Xaml.XamlParseException:未找到SeeVee.StartPage的嵌入资源
[mono]位于Xamarin.Forms.Xaml.XamlLoader.Load(Xamarin.Forms.BindableObject视图,System.Type callingType)[0x00000]中:0
[mono]位于Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage](请参见0中的Vee.StartPage视图,System.Type callingType)[0x00000]
[mono]位于0中的SeeVee.StartPage.InitializeComponent()[0x00000]处
[mono]位于SeeVee.StartPage..ctor()[0x00000]中:0
[mono]位于SeeVee.App.GetMainPage()[0x00000]中:0
[mono]位于SeeVee.Android.MainActivity+d_u0.MoveNext()[0x00000]中:0
[mono rt][错误]致命的未处理异常:Xamarin.Forms.Xaml.XamlParseException:未找到SeeVee.StartPage的嵌入资源
[mono rt]位于Xamarin.Forms.Xaml.XamlLoader.Load(Xamarin.Forms.BindableObject视图,System.Type callingType)[0x00000]中:0
[mono rt]位于Xamarin.Forms.Xaml.Extensions.LoadFromXaml[StartPage](请参见0中的Vee.StartPage视图,System.Type callingType)[0x00000]
[mono rt]位于:0中的SeeVee.StartPage.InitializeComponent()[0x00000]处
[mono-rt]位于SeeVee.StartPage..ctor()[0x00000]中:0
[mono-rt]位于SeeVee.App.GetMainPage()[0x00000]中:0
[mono-rt]位于SeeVee.Android.MainActivity+d_u0.MoveNext()[0x00000]中:0
我必须在xamarin studio中重新构建应用程序,然后重新运行,它才能正常工作。呸!这有时会很累。我希望xamarin意识到这个愚蠢的错误,并将其修复。

这是一个错误。出于某种原因,它的状态是“已解决已修复”,但它似乎一点也不固定。无论如何,在mac上的XS上

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


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

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

我正在使用Visual Studio Community 2017 for Mac。我将引号字符从双引号(“)更改为单引号(”),并格式化了文件。每当初始化格式化的
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后,无论我怎么尝试,我都会遇到这种情况。这是正确的类名。在XAML中没有任何更改,以使其变得有意义,并不断被踢出ios构建和android构建,并出现“未找到嵌入式资源”错误。唯一的解决方案是将xaml和代码保存在记事本中,然后从项目中永久删除该类。向Xamarin.Forms portable项目中添加新的ContentPage,并将其命名为其他名称。将代码粘贴回并保存。更新项目以查找新的ContentPage名称。然后它将再次适用于您。

有效的修复程序对我来说是这样的

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


MSBuild:UpdateDesignTimeXaml

除了一条,失败的那条有一条额外的线,看起来像这样

MyProject.Home.HomeContentView.xaml


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

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

这里也一样,但问题是由x:Class属性值中的一些前导空格引发的。我不得不做同样的事情,或多或少。糟透了。令人惊讶的是,几年后,这个错误没有被修复,解决方法仍然有效。谢谢:谢谢你,在Visual Studio for Mac v8.4.8中,这仍然是唯一对我有效的解决方案。仍然可以在MAC上运行。在我这方面,我删除了UWP项目,但没有从加载字体系列的应用程序文件中删除相关的平台上语句。删除该语句有效。谢谢你的提示。我的缺少生成器标记