Xamarin“Resource.Layout”不包含“Tabbar”错误的定义
Posted
技术标签:
【中文标题】Xamarin“Resource.Layout”不包含“Tabbar”错误的定义【英文标题】:Xamarin 'Resource.Layout' does not contain a definition for 'Tabbar' error 【发布时间】: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.axml
和Resources\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 不幸的是,这不是一个选项
没问题。然后检查你的环境。
【参考方案1】:
问题似乎在安装的 API 中。对我来说,必须安装哪些 API 仍然有点神秘,但删除构建工具 24 并安装构建工具 26.0.1 解决了构建问题。
然后安装缺少的 NDK 并在 Xamarin 选项中设置路径。 现在有 2 个选项可用于支持 HAXM 和/或 Hyper-V 的计算机
-
HAXM。禁用 Hyper-V。然后在 AVD 管理器中更改未创建的模拟器设置,并使用 Android SDK 为模拟器下载 Itom 图像。下载并安装 HAXM。你准备好了。
启用 Hyper-V。下载并安装 Hyper-V VS 模拟器。运行它并创建模拟器虚拟机。你准备好了。
运行您的应用程序。
【讨论】:
对我没有帮助。运行 Visual Studio Mac 2017。【参考方案2】:当我在“layout”文件夹中包含两个文件时发生这种情况:Tabbar.axml 和 Toolbar.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。这就是问题所在!以上是关于Xamarin“Resource.Layout”不包含“Tabbar”错误的定义的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Android:为什么重写OnSaveInstanceState永远不会被调用?
为什么我不能注册我的Android设备? xam.pushnotification
二进制 XML 文件第 1 行:Xamarin Android 中 Google Maps 的类片段错误膨胀错误