找不到嵌入式资源

问题描述 投票:5回答:6

我有一个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知道这个愚蠢的bug,并会解决它。

xamarin xamarin.forms xamarin-studio
6个回答
2
投票

对我有用的修复如下

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

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

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

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

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


4
投票

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

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

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


3
投票

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


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'

希望能帮助到你!


0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.