Visual Studio 2017 - Xamarin - 文件 "obj\Debug\android\bin\packaged_resources" 不存在

Visual Studio 2017 - Xamarin - The file "obj\Debug\android\bin\packaged_resources" does not exist

我已经为这个问题奋斗了 2 天,但找不到任何解决方案。

我在 Visual Studio 2017 年有一个 Xamarin Android 应用程序,由三个项目组成:

  1. Xamarin.Android项目(主要)
  2. Android-设备上的特定单元测试运行 - NUnit 3 Test Project (Android)类型的项目使用NUnit Templates for Visual Studio
  3. 创建
  4. 独立于平台的单元测试项目(Unit Test Project (.NET Framework) 类型的项目)

到目前为止一切正常。当我选择我的主项目作为启动项目时,我的应用程序被部署到 device/emulator。当我选择 Android 特定的单元测试项目时,测试项目已部署,单元测试由 nUnit Xamarin Runners 在 device/emulator.

上执行

但是几天前我用最新的可用更新更新了我的 Visual Studio 2017,现在,在尝试构建这个 android-特定的单元测试项目时 我得到以下信息错误

The file "obj\Debug\android\bin\packaged_resources" does not exist.

我到处搜索,包括 this and SO 主题。我还完全重新安装了 Visual Studio 2017 和包含 Android SDK 的 Xamarin。没有任何帮助。根据我的阅读,我怀疑我安装的 Android SDK Build-tools 的版本有问题。这是我目前在 SDK 管理器中安装的内容:

正如其他 SO 线程所建议的那样,我尝试卸载最新的 Android SDK Build-tools (25.0.2) 并安装版本 23.0.3(我所有的projects target Android 6.0), 但它也无济于事,我仍然有同样的错误。

也许值得补充的是,当我尝试在我的应用程序阅读 this 教程中实现 RecyclerView 时,这个问题可能已经开始发生,他们建议安装 Android 7.1 .1 (API 25) 在 SDK 管理器中。但是我在那之后撤消了所有更改,甚至重新安装了 VS2017 + Xamarin。

你知道为什么会这样吗?我真的很感激任何帮助。谢谢!

编辑 2017-04-09:

呃,我删除了 VS2017,安装了带有全新 Android SDK 的 VS2015,但仍然是同样的问题:(

我终于找到问题所在了。它与 SDK Manager 或 VS 版本的任何组件无关。

localization tutorial from developer.xamarin.com 之后,我在我的 Android 项目中使用了 Strings.xml。我也想从资源中获取我的活动标签,所以在 ActivityAttribute 中我定义了:

[Activity(Label = "@string/peopleListTitle")]

并在 Strings.xml 文件中添加了这个值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-------Other resources values ----->
    <string name="peopleListTitle">People List</string>
</resources>

在那种情况下,我的构建失败并出现上述错误:

The file "obj\Debug\android\bin\packaged_resources" does not exist

当我将ActivityAttribute改为直接使用字符串时:

[Activity(Label = "People List")]

构建顺利通过。

我设法找到了解决方案,但实际上我不知道为什么当我尝试使用 Strings.xml.

中定义的标签文本时它没有构建

顺便说一句,我通过在 工具 -> 选项 -> 项目和解决方案 -> 构建和 运行[ 中将构建输出详细程度设置为 Diagnostic 设法找到了问题所在=40=] 它在输出 window.

中给出了构建失败的详细信息

我的是一个不同的解决方案(只浪费了半天时间):我在让 Hockey 应用程序将崩溃与应用程序的正确版本相匹配时遇到了问题,我意识到它使用的是 VersionCode 而不是 VersionName,所以我将我的代码更改为“ 0.0.34" 同名。由于某些仍然未知的原因,在我开始收到此错误之前,该应用程序构建并部署到设备大约 3 天 The file "obj\Debug\android\bin\packaged_resources" does not exist. 将其设置回数值解决了问题。

我通过回顾我的 GIT 日志并重建每次推送直到找到导致问题的那个推送才发现问题。

此错误的另一个原因是您可能有一个 浮点数 作为您的 版本 编号。就我而言,我将其更改为整数并且一切正常。 (我通过将 build output 切换为 Detailed 来发现错误)

只是因为版本号,我设置了'1.0',文件"obj\Debug\android\bin\packaged_resources"不存在。;我设置为'1' ,一切正常。

有同样的错误,我克服它的方法是启动 Android SDK 管理器并安装所有更新并删除任何过时的软件包。这发生在我身上,因为我的目标是未安装的较新的东西。

很简单。

  1. 在一个案例中,我复制并粘贴了之前的工作 "packaged_resources" 在 bin 文件夹中。[问题是它没有反映 UI 更改]
  2. 其他我打开visual studio为 行政人员。
  3. 接下来将 "Minimum target to Android" 更改为更低 项目属性中的 api windows.
  4. 我建议不要触及设计背后的代码。如果出现此错误,只需将工具栏中的某个按钮拉到设计中,visual studio 就会意识到 UI 中存在变化。接下来单击全部保存,以便在设计器文件中进行必要的更改。

检查resources.designer.cs中是否有任何未使用的条目,如果有任何手动删除这些条目。 这将解决问题。

我遇到了同样的问题。将图片文件名中的破折号“-”去掉后,问题解决。糟糕的错误信息!不应该是:

The file "obj\Debug\android\bin\packaged_resources" does not exist.

写这样的错误消息导致开发人员考虑其他问题,而问题是非法文件名。

在遵循了几个在线建议之后——更新 SDK、更新 Xamarin 等——none 其中对我有用。

最后发现我的 AndroidManifest 文件中有一个 activity 用于 Android 闹钟提供程序,如下所示

 <activity 
     android:name="com.njcommuter.droid/android.provider.AlarmClock" 
     android:label="AlarmClock"
     .....
     />

删除此行 - 重建 工作正常,没有任何错误,并且能够成功部署解决方案。

Note : testing this by putting the line back, and I get same error again on rebuilding. It can be linked to using any android provider which creates the package for it, not necessarily AlarmClock only.

我遇到了同样的问题,我删除了所有图像文件名中带有“-”字符的文件。我的问题解决了

我在添加新图像作为资源时遇到了同样的问题。 文件名中有“-”(资源名称字符无效)。我重命名并删除了那个角色,一切都很好。 资源名称只能由 0-9、a-z 或 A-Z 或任意组合组成。

这个错误在某种程度上是一个包装器,可能有多种原因导致文件未创建。关键是查看详细输出并查找导致文件创建失败的潜在错误。

在我的例子中,我损坏了 icon.png 个文件(直接从 VS xamarin nunit 模板生成,不少于!)。一旦我输入了有效的 png 文件,一切就都建立好了。

此错误的另一个原因,如果 android NDK(不是 android SDK)不正确,更改版本可以解决问题:转到 Tools/Options/Xamarin/android 配置器并更改 de 文件夹,在我的例子中我有三个,最后一个无法编译,但是版本为 xx.r11c 的第二个文件夹可以编译。

对我来说是 Target Android Version.I 设置为

但将其更改为编译版本(对我来说它是最新的平台)解决了问题。