找不到嵌入式资源

时间:2015-01-12 06:31:46

标签: 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.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工作室重建应用程序并重新运行它的工作原理。唷!这有时会变得非常累人。我希望xamarin知道这个愚蠢的错误并将修复它。

6 个答案:

答案 0 :(得分:2)

这是一个bug。出于某种原因,它的状态是已解决固定,但它似乎根本不固定。无论如何,在Mac上的XS上。

作为一种解决方法,抛出异常的文件SomeClass.g.cs只是对该生成的文件进行编辑,保存并再次构建。比重建一切要快一点。

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

对我有用的解决方法如下

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

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

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

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

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

答案 3 :(得分:0)

我正在使用Visual Studio Community 2017 for Mac。我将引号char从双引号(“)更改为单引号(')并格式化我的文件。突然间,只要格式化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'

希望它有所帮助!

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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