![](/img/trans.png)
[英]'Resource.Layout' does not contain a definition for 'activity_main' in xamarin
[英]Xamarin 'Resource.Layout' does not contain a definition for '*' Error
必需的Android支持库
套件中的控件需要特定的Xamarin Android支持库才能在Android上正确呈现。
下面列出了使用我们套件的所有Android项目的常见要求:
Xamarin Forms软件包的最低要求版本为3.4。 所有Xamarin Android支持库的最低要求版本是27.0.2.1。 这里列出了所有包:
Xamarin.Android.Support.v4
Xamarin.Android.Support.Design
Xamarin.Android.Support.v7.AppCompat
Xamarin.Android.Support.v7.CardView
Xamarin.Android.Support.v7.MediaRouter
Xamarin.Android.Support.Vector.Drawable
Xamarin.Android.Support.Animated.Vector.Drawable
Xamarin.Android.Support.v7.RecyclerView
Xamarin.Android.Support.v8.RenderScript
Android项目的目标Android版本应为Android 8.1(API级别27)或更高版本。
必须安装相应的目标Android版Android SDK才能使用所需的支持库(从Android SDK Manager安装)。
遵循这一点仍然收到两个错误:
Error:CS0117
'Resource.Layout' does not contain a definition for 'Tabbar'
'Resource.Layout' does not contain a definition for 'Toolbar'
尝试使用Visual Studio中的Android SDK管理器卸载并重新安装SDK,SDK工具,SDK平台工具,SDK构建工具,Android模拟器,LLDB,NDK,Extras和SDK Patcher Applier v4。
删除bin / obj文件夹,重启VS,清理,重建。
错误仍然存在。 如何修复错误CS0117 Xamarin'Source.Layout'不包含'*'的定义?
1> C:\Users\...\MyApp.Android\MainActivity.cs(44,49,44,53): error CS0117: 'Resource.Layout' does not contain a definition for 'Tabbar'
1> C:\Users\...\MyApp.Android\MainActivity.cs(45,47,45,52): error CS0117: 'Resource.Layout' does not contain a definition for 'Toolbar'
protected override void OnCreate(Bundle bundle)
{
_Instance = this;
TabLayoutResource = Resource.Layout.Tabbar; (LINE 44)
ToolbarResource = Resource.Layout.Toolbar; (LINE 45)
base.OnCreate(bundle); (LINE 47)
CrossCurrentActivity.Current.Init(this, bundle); (LINE 49)
global::Xamarin.Forms.Forms.Init(this, bundle);
Metrics = Resources.DisplayMetrics; (LINE 52)
widthInDp = ConvertPixelsToDp(Metrics.WidthPixels); (LINE 53)
heightInDp = ConvertPixelsToDp(Metrics.HeightPixels);
LoadApplication(new App());
}
答案在与Android构建错误相关的各种问题之间有所不同,例如此问题。 现在,对我自己来说,解决方法是取消对Packages.config
和项目文件本身的所有更改,在我的例子中是Android.csproj
。 值得一提的是,我看到一个新的错误: Ambiguity between 'Resource.Layout.Tabbar' and 'Resource.Layout.Tabbar'
(对于Toolbar
),但它不会阻止构建和部署。
另一个可能的解决方案,注意到Resources.designer.cs
文件存在于Resources
文件夹和Resources\\drawable
文件夹中。 排除先前似乎已经奏效。 不知道为什么有两个。 希望这有助于其他人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.