Xamarin Android资源未知标识符资源
我从xamarin下载了活动场景转换示例应用程序,并在Visual Studio 2015中打开它,并尝试通过VS Emulator运行该应用程序 我在MainActivity.cs的第108行收到错误“未知标识符:资源”:Xamarin Android资源未知标识符资源,xamarin,Xamarin,我从xamarin下载了活动场景转换示例应用程序,并在Visual Studio 2015中打开它,并尝试通过VS Emulator运行该应用程序 我在MainActivity.cs的第108行收到错误“未知标识符:资源”: view = context.LayoutInflater.Inflate(Resource.Layout.grid_item, viewGroup, false); 我没有更改任何代码,只是更改了它,并将其标记为部署,以便在VisualStudioEmulator中执行
view = context.LayoutInflater.Inflate(Resource.Layout.grid_item, viewGroup, false);
我没有更改任何代码,只是更改了它,并将其标记为部署,以便在VisualStudioEmulator中执行应用程序。当我在VS中时,我没有收到任何错误,也没有得到任何构建错误,只有当它被加载时,我才得到这个错误
有什么我遗漏的吗 来自
在Xamarin.Android和VisualStudio中有一个长期存在的调试问题,与检查静态类中的值有关。特别是,如果在引用静态类(或具有静态成员的非静态类)的行上设置断点,Visual Studio可能会将检查值显示为“未知标识符:[ClassName]”
根据我的分析,项目中类文件的位置决定了您是否会遇到这个问题
我的结论是,在Xamarin修复bug之前,所有静态类和具有静态成员的类都应该放在项目的根文件夹中。还有其他文件放置选项,但有些完全不起作用,其中之一需要使用名称空间完全限定静态类调用——即使编译器不需要
有关完整详细信息,请参见下面代码中的注释
MainActivity.cs
using System;
using Android.App;
using Android.OS;
namespace App1 {
[Activity(Label = "Unknown Identifier Test", MainLauncher = true)]
public class MainActivity : Activity {
protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
Console.WriteLine(MyClass.MyString); // Unqualified
Console.WriteLine(App1.MyClass.MyString); // Fully Qualified with namespace
/*
Set a break point on the "Console.WriteLine()" lines above and you'll get the
"Unknown identifier: MyClass" error when trying to inspect under specific conditions...
File Locations Unqualified Fully Qualified
------------------------------------------------- --------------------- --------------------
MainActivity.cs in root, MyClass.cs in sub-folder "Unknown identifier" Inspection Works
MainActivity.cs in sub-folder, MyClass.cs in root Inspection Works Inspection Works
Both in root Inspection Works Inspection Works
Both in different sub-folders "Unknown identifier" "Unknown identifier"
Both in same sub-folder "Unknown identifier" "Unknown identifier"
*/
}
}
}
MyClass.cs
namespace App1 {
public static class MyClass {
public static string MyString;
}
// The class can also be constructed this way, which results in the same findings:
//public class MyClass {
// public static string MyString;
//}
}
2016年4月3日,我用此信息更新了相关的Xamarin Bugzilla机票。希望他们能尽快解决这个问题。检查
Resources/layout
中是否有grid\u item.xml
文件。你有没有尝试过清理这个项目?看看你的android资源。确保它们设置为AndroidAsset而不是AndroidBundle?