Xamarin Android 资源文件未找到。

16
我正在Visual Studio中构建一个Android应用程序。当我尝试引用资源文件夹中的项目来构建应用程序时,我会遇到两个错误中的其中一个。
如果在"Resource.Layout.[Id]"或"Resource.Id.[Id]"之前加上我的项目命名空间,我会得到以下错误:
命名空间"[应用程序命名空间]"中不存在类型或命名空间名"Resource"(是否缺少程序集引用?)
如果我没有在Resource调用中加入我的命名空间,则它会尝试访问默认的Android.Resource类,并出现以下错误:
“Android.Resource.Layout”不包含“[axml文件]”的定义
有人遇到过这种错误吗?我已经搜索了一段时间,但找不到任何看起来有问题的地方。 Resource.Designer文件存在。我已将其删除并重新生成它。 Id在Resource文件中,但是项目根本无法识别资源类。
最初,此应用程序的命名空间以“Android”结尾。认为这可能是问题的一部分,因此我将其更改为"_Android"和"AndroidApp",包括更改项目属性中的默认命名空间和更改每个文件中的命名空间声明。但是,此错误在每个更改中都持续存在。
6个回答

33

当您添加新文件时,如果Visual Studio将其设置为错误的构建操作,则可能会出现此问题。我知道这种情况已经发生了多次,我可以花费很长时间来弄清楚发生了什么。如果你右键单击该文件并查看Build Action,应该将其设置为“Android Resource”。希望这有所帮助。

屏幕截图


1
刚刚添加了一个东西,我不得不清理解决方案,重新启动Visual Studio,重建项目。最终,我的可绘制对象被找到了。 - this.myself

12

您代码中的命名空间和解决方案资源管理器中的命名空间应该相同。


我不确定您在解决方案资源管理器中所说的命名空间是什么意思。您是指项目属性窗口中的命名空间吗? - rwakelan
是的,它们应该是相同的。 - user3674052
1
他们是。我已经在每次迭代中更新了那个位置和代码文件本身。 - rwakelan

2

对我有效的唯一方法是关闭VS,完全删除项目的所有binobj文件夹,重新打开并重新编译所有内容。这是由于在Visual Studio Mac上工作,然后在Windows计算机上打开同一项目时出现了一些问题。


1
请确保在AndroidManifest.xml中没有依赖于其他不存在资源的名称,例如:
android:label="@string/app_name" so we have to go to our resources/string.xml

<resources>
  <string name="app_id">ssss</string>  
</resources>

1
我尝试使用了你的建议,但无法找到问题,但我相信你的答案是我的问题所在。我从头开始重新构建,并且不是复制资源、样式、颜色、值等所有特定类型文件,而是手动逐个创建它们,然后将代码从以前的项目复制过来,这样我的问题就解决了。 - Post Impatica

0
我遇到了这个问题,而且我很简单地解决了它:
1- 清理您的启动项目
2- 再次为Android构建一次。
就是这样。

1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0
只需从项目文件中删除bin和obj文件夹,然后重新启动VS即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接