Xamarin Resource.Id不承认

时间:2017-04-28 13:37:18

标签: c# android visual-studio xamarin

我在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”的定义

Screenshot

4 个答案:

答案 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。

相关问题