CS0103名称'资源'在当前上下文中不存在

时间:2018-01-04 14:01:34

标签: android visual-studio xamarin

当我在Visual Studio中使用Xamarin创建Android应用程序时,我得到了一个奇怪的错误 - CS0103名称'资源'在当前上下文中不存在。当我做Clean然后Build时,没有任何问题,构建就是成功。但是当我在代码中更改某些内容时,会再次出现Error。 我尝试根据此post进行更改,但是Resources文件夹中的所有文件名都可以。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

简短:

确保您的名称空间在下面提到的所有这些文件中都相同;

  • Resource.Designer.cs
  • 每个活动都会产生错误:“cs103资源不存在..”
  • yourproject.csproj(编辑vith notepad)(验证“RootNamespace”,“AssemblyName”与您的命名空间相同)

使它们全部相同后,名称空间clean + build应该可以正常工作

<强>长:

如果你在项目的任何地方更改了命名空间,

你必须在yourProjectName.csproj文件中找到并将oldNameSpace替换为NewNameSpace (使用vs2015之外的文本编辑器打开)

为什么?

当您使用 csproj 文件中的值

覆盖Resource.Designer.cs中的项目名称空间

任何活动:

namespace yourNew_NameSpace  //  <-- Attention here !!!!!!
{
    [Activity(Label = "asdf", MainLauncher = true )]
    public class act_main : Activity  
    {
        TextView tv_camResolution;

        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.ly_main);

            tv_camResolution = FindViewById<TextView>(Resource.Id.textView1);

        }
        ......

.csproj文件:

.... 
<RootNamespace>OldNameSpace</RootNamespace>
<AssemblyName>OldNameSpace</AssemblyName>
....

<强> Resource.Designer.cs:

                                                          //▼▼▼below see oldnamespace 
[assembly:global::Android.Runtime.ResourceDesignerAttribute("OldNameSpace.Resource", IsApplication=true)]


namespace OldNameSpace    // <--- and here see oldnamespace  
{

    ....

答案 1 :(得分:0)

我有同样的错误,但我的代码编译。所以它可能与错误的导入或模糊的Resources对象有关。请注意,有资源和资源,我相信资源来自android sdk。