我们正在做一些围绕应用程序共享UI的工作,包括整个视图和单个控件,因此我们最终得到的结构是(在Android上):
Android App
View (Activity + Layout) pulled in from a NuGet package
Control (Layout) pulled in from another NuGet package
因此应用程序会拉入视图并且视图会拉入控件。
我们看到的问题是控件布局中定义的资源ID不会在应用程序的Resource.designer.cs中结束,这样当应用程序运行时,我们会在调用FindViewByID时看到崩溃。
有趣的是我们已经在三个不同的应用程序中实现了上述功能,它分为两个而不是另一个,所以我认为它在某个地方的构建配置或其纯粹的机会是有区别的,我们不能依赖这种模式有效。
有没有人见过这个?
更新
密切关注构建输出后,我实际上可以看到为缺少的控件生成警告:
Warning XA0106: Skipping MyControl.Resource.Id.myId. Please check that
your Nuget Package versions are compatible. (XA0106)
答案 0 :(得分:0)
我知道一个老问题,但万一有人需要它:
在更新到Xamarin.Forms v4.1.0.581479之后,我遇到了非常相似的问题,并遵循了James Esh的上述评论以及JimmyGarrido在这里的回答以得到解决:https://forums.xamarin.com/discussion/89661/a-lot-of-warnings-appear-in-a-new-empty-xamarin-forms-xaml-project
在我看来,最简单的答案是删除PCLAppConfig Nuget软件包。您的项目中可能还存在其他使用旧版本Xamarin.Android.Support *软件包构建的软件包。不幸的是,我还没有找到诊断哪个软件包专门导致该问题的方法,因此先进行更新,然后删除和重新测试的操作会导致我找到解决方案。