Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
xamarin C#:';资源';不包含';Id';_C#_Android_Xamarin_Xamarin.android - Fatal编程技术网

xamarin C#:';资源';不包含';Id';

xamarin C#:';资源';不包含';Id';,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我最近开始与Xamarin合作,用C#构建Android应用程序。 我有一个特别的问题,使我很难取得任何进展: 我有两个相同的项目,问题只出现在其中一个项目中。 它最初出现在这两个地方,但经过几次重建,第一次修复了。 第二个似乎更持久。 我真的需要找到这个问题的解决方案,因为引用是非常基本和必要的。更不用说,它发生在每一个新项目中。 这是我的密码: 使用系统; 使用Android.App; 使用Android.Content; 使用Android.Widget; 使用Android.OS;

我最近开始与Xamarin合作,用C#构建Android应用程序。 我有一个特别的问题,使我很难取得任何进展:

我有两个相同的项目,问题只出现在其中一个项目中。 它最初出现在这两个地方,但经过几次重建,第一次修复了。 第二个似乎更持久。 我真的需要找到这个问题的解决方案,因为引用是非常基本和必要的。更不用说,它发生在每一个新项目中。 这是我的密码:

使用系统;
使用Android.App;
使用Android.Content;
使用Android.Widget;
使用Android.OS;
命名空间NoteMath_v1._0._1
{
[活动(Label=“noteMath”,MainLauncher=true,Icon=“@drawable/Icon”)]
公共课活动:活动
{
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
RequestFeature(Android.Views.WindowFeatures.NoTitle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.Main);
EditText etInput=FindViewById(Resource.Id.etInput);
TextView tvConsole=FindViewById(Resource.Id.tvConsole);
etInput.KeyPress+=(对象发送者,EditText.KeyEventArgs e)=>
{
e、 已处理=错误;
if(e.Event.Action==Android.Views.KeyEventActions.Down&&e.KeyCode==Android.Views.KeyCode.Enter)
{
tvConsole.Append(“\n>”+HandleInput.TransferInput(etInput.Text));
put.Text=“”;
e、 已处理=正确;
}
};
}
}
}

您发布的代码看起来不错。错误显然不是从那里来的。您的任何资源布局或xml文件中都有错误

问题实际上是VisualStudio不会在errors面板中显示资源生成错误,尽管它应该是这样的(我认为这将在将来的版本中得到修复)。目前,它只是告诉您类
Id
不存在

Resources.designer.cs
是Xamarin在编辑任何资源文件时生成的类。它包含对xml/axml文件中任何声明、id等的引用。如果资源有错误,
Resources.designer.cs
生成将失败,但您会得到一个非常模糊的错误提示

您可以尝试的第一件事是重建Android项目,强制重新生成所有资源。否则,请尝试以下操作:

好消息是,通过将生成输出详细度更改为“详细”,您可以看到生成错误:

现在再次编译项目并检查输出窗口。它会准确地告诉你问题出在哪里

修复后,将生成
Resource.Id
类。

对我来说,这是有效的:

第一步。 项目>更新NugetPackages

第二步。 构建>清除所有

第三步。
构建>全部构建

我是超级新人。唯一对我有效的方法是在我的项目根目录中手动运行此powershell脚本:

Get ChildItem.\-include bin,obj-Recurse | foreach($|){remove item$|.fullname-Force-Recurse}

我不确定为什么live view/build输出没有更大的帮助,或者visual studio没有在我的xamarin项目中正确清理这些文件

特别感谢这家伙:


请发布代码而不是图片:谢谢您的建议。添加了代码。这通常发生在axml文件包含错误时。在这种情况下,无法正确生成
Resources.designer.cs
文件。谢谢您的详细回答。我创建的所有新项目都有问题。最后,我重新安装了xamarin,问题得到了解决。这可能是因为你安装了一个更新的版本,并且修复了错误:)我不敢相信我仍然反复面对这个问题,即使这样做了,我仍然有这个错误。唯一有效的方法是运行powershell脚本,这样我就可以看到xml文件的问题。仍然+1,因为您帮助我找到了正确的解决方案。
using System;
using Android.App;
using Android.Content;
using Android.Widget;
using Android.OS;

namespace NoteMath_v1._0._1
{
    [Activity(Label = "noteMath", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            Window.RequestFeature(Android.Views.WindowFeatures.NoTitle);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            EditText etInput = FindViewById<EditText>(Resource.Id.etInput);
            TextView tvConsole = FindViewById<TextView>(Resource.Id.tvConsole);
            etInput.KeyPress += (object sender, EditText.KeyEventArgs e) =>
            {
                e.Handled = false;
                if (e.Event.Action == Android.Views.KeyEventActions.Down && e.KeyCode == Android.Views.Keycode.Enter)
                {
                    tvConsole.Append("\n>" + HandleInput.TransferInput(etInput.Text));
                    etInput.Text = "";
                    e.Handled = true;
                }
            };
        }
    }
}