Xamarin表单生成错误的资源

时间:2019-03-13 08:36:24

标签: xamarin.forms xamarin.android

我有一个带有Xamarin Forms的Xamarin Android应用程序。从Xamarin Forms 3.4.0.1029999更新之后,我在Resource.Designer中的条目如下:

        // aapt resource value: 0x7F030220
        public const int bottomtab.navarea = 2130903584;

        // aapt resource value: 0x7F030221
        public const int bottomtab.tabbar = 2130903585;

有了这些,我会收到很多这样的错误:

enter image description here

我认为这是因为要点。有趣的是,构建是成功的。 我该如何解决这个错误?

编辑:项目链接:https://github.com/MoneyFox/MoneyFox

2 个答案:

答案 0 :(得分:3)

这似乎是最近引入的bug,它对BottomTabLayout.axml文件进行了更改,最终导致生成的设计文件使用matching-X个字符而不是.个字符。此处有更多详细信息:https://github.com/xamarin/xamarin-android/issues/3007#issuecomment-486622711

Xamarin的工程师已经意识到了这个问题,并且已经发布了一个修复程序,该修复程序应该很快发布,但是与此同时,您可以按照以下步骤使用旧的_生成器来解决此问题:

  1. 右键单击Android项目,然后选择aapt。如果项目从IDE中消失,请确保解决方案显示了所有文件,而不仅仅是项目中的文件。
  2. 右键单击已卸载的Android项目,然后选择Unload Project打开.csproj文件。
  3. 在第一个Edit Project标签中,添加以下内容:
PropertyGroup
  1. 保存更改,然后右键单击Android项目并选择<AndroidUseManagedDesignTimeResourceGenerator> False </AndroidUseManagedDesignTimeResourceGenerator>

如果一切顺利,则错误应立即纠正。您可能需要清理和构建,但是根据我的经验,在重新加载Android项目后,立即进行了更正。请注意,根据错误报告,Reload Project生成器将变慢,如果对aapt文件进行了更改并且“设计时生成”正在运行,这可能会很明显。

答案 1 :(得分:2)

每次更新Xamarin表单时,请遵循以下步骤

  • 删除bin和obj,因为它具有以前版本的数据
  • 重启vs
  • 清理构建并运行