当我在Visual Studio中使用Xamarin创建Android应用程序时,我得到了一个奇怪的错误 - CS0103名称'资源'在当前上下文中不存在。当我做Clean然后Build时,没有任何问题,构建就是成功。但是当我在代码中更改某些内容时,会再次出现Error。 我尝试根据此post进行更改,但是Resources文件夹中的所有文件名都可以。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:1)
简短:
确保您的名称空间在下面提到的所有这些文件中都相同;
使它们全部相同后,名称空间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。