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

Daw*_*ski 24 android xamarin.android xamarin visual-studio-2017

我已经对这个问题进行了2天的斗争,但找不到任何解决方案.

我在Visual Studio 2017中有一个Xamarin Android应用程序,包含三个项目:

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

一切都运作良好,直到现在.当我选择我的主项目作为启动项目时,我的应用程序已部署到设备/模拟器.当我选择特定于Android的单元测试项目时,部署测试项目并在设备/模拟器上由nUnit Xamarin Runners执行单元测试.

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

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

我到处搜索,包括这个这个 SO主题.我还完全重新安装了包含Android SDK的Visual Studio 2017和Xamarin.什么都没有帮助.根据我的阅读,我怀疑我安装的Android SDK Build-tools版本有问题.这是我目前在SDK Manager中安装的内容: 在此输入图像描述

正如其他SO线程建议的那样,我尝试卸载最新的Android SDK Build-tools(25.0.2)并安装了版本23.0.3(我的所有项目都针对Android 6.0),但它也没有帮助,我仍然有相同的错误.

也许值得补充一点,当我尝试在我的应用程序中阅读教程时实现RecyclerView时,这个问题可能已经开始发生,他们建议在SDK Manager中安装Android 7.1.1(API 25).然而,在此之后我撤消了我的所有更改,甚至重新命名了VS2017 + Xamarin.

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

编辑2017-04-09:

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

Daw*_*ski 22

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

developer.xamarin.com的本地化教程之后,我Strings.xml在Android项目中玩了一些.我想从资源中获取我的活动标签,所以在ActivityAttribute我定义的内容中:

[Activity(Label = "@string/peopleListTitle")]
Run Code Online (Sandbox Code Playgroud)

并在Strings.xml文件中添加此值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!-------Other resources values ----->
    <string name="peopleListTitle">People List</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

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

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

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

[Activity(Label = "People List")]
Run Code Online (Sandbox Code Playgroud)

构建过程没有任何问题.

我设法找到了一个解决方案,但实际上我不知道为什么当我尝试使用中定义的Label文本时它不会构建Strings.xml.

顺便说一句,我设法通过Diagnostic工具 - >选项 - >项目和解决方案 - >构建和运行中设置构建输出详细程度来找到问题,它在"输出"窗口中提供了构建失败的详细信息.

  • 是的.**Diagnostic**选项挽救了我的生命.在我的情况下,问题是由我添加到Resources/drawable文件夹中的图像引起的,名称中带有破折号.我发现通过打开诊断选项.谢谢@DawidSibinski! (8认同)

小智 17

我有同样的问题.从图像文件名中删除短划线" - "符号后,问题就解决了.错误信息错误!它不应该是:

文件"obj\Debug\android\bin\packaged_resources"不存在.

编写这样的错误消息导致Developer在问题是非法文件名时考虑其他事情.