【问题标题】:Xamarin 'Resource.Layout' does not contain a definition for 'Tabbar' errorXamarin“Resource.Layout”不包含“Tabbar”错误的定义
【发布时间】:2018-01-05 17:19:17
【问题描述】:

我已经创建了一个基本的 xamarin.forms 项目(使用 PCL 代码共享策略),但在 MainActivity::OnCreate() 中的以下两行出现错误

TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;

CS0117“Resource.Layout”不包含“Tabbar”的定义
CS0117“Resource.Layout”不包含“工具栏”的定义

资源文件以Resources\layout\Tabbar.axmlResources\layout\Toolbar.axml 存在,并且它们的构建操作都设置为AndroidResource

我怀疑我的 android SDK 安装有问题。目前安装了以下软件包:

但 Visual Studio 2015 中的 Run 按钮仍显示 Android 6.0 API 23 并且无法更改:

我还将Android项目的Target Framework版本设置为7.1:

项目结构如下:

我已经按照this tutorial一步步创建了示例项目。

如何修复错误?

【问题讨论】:

  • 能否提供样例工程?这将告诉我们问题是您的项目还是环境
  • @YuriS 用项目结构的快照和教程源代码的链接更新了问题。请注意,即使是初学者xamarin.forms 模板项目也会出现此错误,并且与我遵循的教程无关。
  • 你想让我用teamviewer看看你的机器吗?
  • @YuriS 不幸的是,这不是一个选项
  • 没问题。然后检查你的环境。

标签: c# xamarin visual-studio-2015 xamarin.forms android-sdk-manager


【解决方案1】:

问题似乎在安装的 API 中。对我来说,必须安装哪些 API 仍然有点神秘,但删除构建工具 24 并安装构建工具 26.0.1 解决了构建问题。

然后安装缺少的 NDK 并在 Xamarin 选项中设置路径。 现在有 2 个选项可用于支持 HAXM 和/或 Hyper-V 的计算机

  1. HAXM。禁用 Hyper-V。然后在 AVD 管理器中更改未创建的模拟器设置,并使用 Android SDK 为模拟器下载 Itom 图像。下载并安装 HAXM。你准备好了。
  2. 启用 Hyper-V。下载并安装 Hyper-V VS 模拟器。运行它并创建模拟器虚拟机。你准备好了。

运行您的应用程序。

【讨论】:

  • 对我没有帮助。运行 Visual Studio Mac 2017。
【解决方案2】:

当我在“layout”文件夹中包含两个文件时发生这种情况:Tabbar.axmlToolbar.axml。遵循 Xamarin 文档:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/android/appcompat-material-design

我解决了这个问题,只需右键单击这些文件,选择属性并将 Build Action 更改为 AndroidResource

【讨论】:

  • 当你在 layout 文件夹中包含一个文件时,VS 会添加 xml 扩展名,并且 Build Action 是 AndroidResource。如果将扩展名更改为 axml,则 Build Action 将更改为 Content。这就是问题所在!
猜你喜欢
  • 2019-08-18
  • 2018-09-29
  • 1970-01-01
  • 2016-03-06
  • 2018-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 2018-03-07
相关资源
最近更新 更多