我在Xamarin中创建了新项目(空白应用程序),但是在MainActivity.cs预设代码中缺少按钮,并且注释了SetContentView。 所以我手动添加了代码,但是当我使用FindViewById创建按钮时,他无法识别Resource.Id,并将.id标记为错误
Resource.designer.cs
[System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
public partial class Resource
{
static Resource()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
public static void UpdateIdValues()
{
}
public partial class Attribute
{
static Attribute()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Attribute()
{
}
}
public partial class Drawable
{
// aapt resource value: 0x7f020000
public const int Icon = 2130837504;
static Drawable()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Drawable()
{
}
}
public partial class Layout
{
// aapt resource value: 0x7f030000
public const int Main = 2130903040;
static Layout()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private Layout()
{
}
}
public partial class String
{
// aapt resource value: 0x7f040001
public const int ApplicationName = 2130968577;
// aapt resource value: 0x7f040000
public const int Hello = 2130968576;
static String()
{
global::Android.Runtime.ResourceIdManager.UpdateIdValues();
}
private String()
{
}
}
}
MainActivty.cs
using System;
using Android.Runtime;
using Android.Views;
using Android.App;
using Android.Widget;
using Android.OS;
namespace App1
{
[Activity(Label = "App1", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
Button button = FindViewById<Button>(Resource.Id.MyButton);
}
}
错误:“资源”不包含“id”的定义
答案 0 :(得分:1)
检查Xamarin是否已生成Resource类。您可以在Resource.designer.cs
文件夹中找到Android项目下的文件(Resources
)。如果尚未生成,通常重建项目将再次生成它(除非某处出现语法错误)。
为.axml文件中创建的Views生成Resource.Id类变量。
根据评论中的答案完成编辑:
Resources
类应该包含一个内部Id
类,它显然没有。如果您的.axml文件中存在语法错误,则会发生这种情况,因为在这种情况下,Resources.designer.cs
文件将不会重新生成。或者您根本没有设置ID,您可以添加如下ID:<Button android:id="@+id/myButton" />
答案 1 :(得分:1)
我不知道您是否已尝试过,但尝试重建项目:Build-&gt; Rebuild All。我告诉过你,因为我遇到了类似的问题,我解决了重建项目的问题。希望这能帮助你。
答案 2 :(得分:0)
好的,我已经解决了这个问题!在Main.xml中缺少lblWorkgroupOneTotalTime.Text = $"{totalHours:00}:{totalWeekOneHours.Minutes:00}";
,并且AndroidManifest.xml中存在语法错误
答案 3 :(得分:0)
清洁->全部重建。如果仍然找不到资源ID,请重新启动Visual Studio。我正在使用2019。