【问题标题】:'Resource' does not exist in current context当前上下文中不存在“资源”
【发布时间】:2018-01-09 10:06:07
【问题描述】:

我正在使用 Visual Studio 2015 开发 Android-Xamarin 应用程序。 在我认为它是用于 Xamarin 更新 4.8.0.754 的倒数第二个 Visual Studio 工具之后,我遇到了问题。

在整个解决方案中,没有找到资源

当前上下文中不存在名称“资源”。

如此屏幕截图所示:

建议的潜在解决方法是“使用 Android;”

这对我一点帮助都没有,如下一张截图所示:

现在错误信息是

“Resource.Id”不包含“IDNAME”的定义

也许你可以帮我解决这个问题:-)

作为附加信息:我也得到了这个线程中讨论的问题: Xamarin Android project cannot build because R$anim.class is in use

到目前为止,这两个问题同时发生。


编辑:

假设在我的解决方案中,缺少资源的项目称为“ProjectName.Client.Droid”。 在这个项目中,有“Activity”、“Adapter”、“Fragment”、...、“Resources”等文件夹

在代码中,我可以选择例如“ProjectName.Client.Droid.Fragment”,在这种情况下,如果我输入“F”,IntelliSens 甚至会建议“.Fragments”

我看到项目中的每个文件夹,除了 Resources 文件夹。

ProjectName.Client.Droid.Fragments      // works
ProjectName.Client.Droid.Resources      // not found

【问题讨论】:

  • 可能是这个已知的错误:bugzilla.xamarin.com/show_bug.cgi?id=60343
  • A Clean + Rebuild 通常会在我遇到此错误时解决此问题。
  • 请在发布时试用我们的 15.6 Preview 2 版本。这应该解决 #60343 和一般来说这个问题。您可以深入研究的其他一些项目是确保正确生成 Resource.designer.cs。尝试删除该文件,重建您的项目,并将新生成的Resource.designer.cs 文件包含到您的项目中。在执行此操作之前清除您的 bin/obj 文件夹。
  • 尝试删除您的项目 bin/obj 文件,然后重新构建。
  • 我尝试了与 VS2017 相同的解决方案,所有资源都在那里。但我无法部署,因为每次我遇到 NullPointer 异常。 @JonDouglas您的回答让我检查了资源文件的ID ...解决方案是删除我平板电脑上的应用程序,因为缓存了旧ID。因此,如果您在设备上进行部署,请确保在生成新的 Resource.designer 文件后从设备中删除应用程序。对于 VS2015,问题仍然存在 -> 我可以部署但资源被标记为未找到

标签: c# android xamarin visual-studio-2015 xamarin.android


【解决方案1】:

使用 android 类无法解决问题,因为它与您需要的 Resource 类不同。
未知资源出现此问题意味着您的 VS 未正确加载。 (有时和我一样)

这可以通过重启VS来解决。关闭 Visual Studio,重新打开 Visual Studio 并等待重新加载所有内容,也可以解决正在使用的问题。

"Xamarin Android project cannot build because R$anim.class is in use"

但另一件事可能会给您带来与资源有关的问题,即您的项目具有不同的命名空间。


建议步骤:
1. 请删除您在 android 上的导入以开始修复。
2. 检查命名空间是否与项目不同(尤其是复制粘贴代码)
3.重新启动VS,然后重新打开。请等待 VS 加载它需要的所有内容。

注意:我重新加载 VS Resource.Designer 而不是重新启动的另一种方法是将任何内容添加到项目中,例如空白活动,然后等待活动变成蓝绿色:

public class MyClassName : Activity <- this one

更新
关于命名空间。请注意,我的活动名称空间与我的项目名称相同。如果它有不同的命名空间,您将无法找到 Resource 文件夹。如果是这种情况,您可以尝试将您的项目名称与您的名称空间相同,如果您打算更改名称空间,则可以通过 使用 名称空间名称 导入它; 当我们试图从不同的项目中复制粘贴代码时,或者我们只是输入了一个命名空间错误并遗漏了一些字母时,通常会发生这种情况。

【讨论】:

  • 以每种形式重新启动都不能解决这个问题。检查命名空间是指将 Resource.Designer 中的命名空间与 Files 进行比较?
  • 这不是同一个问题@jace。该问题已在已发布的 15.5.2 中修复。
  • 让我试试@JonDouglas。您是指 Visual Studio 15.5.2 版吗?
  • 我指的是您在答案中提出的问题已在 15.5.2 中修复,因此这是一个单独的问题。请参阅我上面对原始问题的评论。
【解决方案2】:

同时,此错误已通过更新 VisualStudio 和 Xamarin 得到修复。

【讨论】:

  • 不,不是。截至 2019 年 1 月 9 日,与当前 VS.Net 存在相同的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多