繁体   English   中英

Xamarin'Resource.Layout'不包含'*'错误的定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM