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

时间:2017-04-08 12:54:10

标签: android xamarin xamarin.android visual-studio-2017

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

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

  1. Xamarin.Android项目(主要项目)
  2. 在设备上运行特定于Android的单元测试 - 使用NUnit Templates for Visual Studio
  3. 创建的NUnit 3 Test Project (Android)类型的项目
  4. 与平台无关的单元测试项目(Unit Test Project (.NET Framework)类型的项目)
  5. 到目前为止,一切工作都很顺利。当我选择我的主项目作为启动项目时,我的应用程序已部署到设备/模拟器。当我选择特定于Android的单元测试项目时,部署测试项目并在设备/模拟器上由nUnit Xamarin Runners执行单元测试。

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

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

    我到处搜索,包括thisthis SO主题。我还完全重新安装了包含Android SDK的Visual Studio 2017和Xamarin。什么都没有帮助。根据我的阅读,我怀疑我安装的 Android SDK Build-tools 的版本有问题。这是我目前在SDK Manager中安装的内容: enter image description here

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

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

    你还有其他想法为什么会这样吗?我真的很感激任何帮助。谢谢!

    编辑2017-04-09:

    呃,我删除了VS2017,用全新的Android SDK安装了VS2015但问题仍然存在:(

14 个答案:

答案 0 :(得分:22)

我终于找到了问题所在。它与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中定义的标签文字时,我不知道它为什么不构建。

顺便说一句,我设法通过在工具 - &gt;中将构建输出详细程度设置为Diagnostic来找到问题所在。选项 - &gt;项目和解决方案 - &gt;构建并运行,它在“输出”窗口中详细说明构建失败的原因。

答案 1 :(得分:17)

我遇到了同样的问题。删除短划线&#34; - &#34;从图像文件名中签名,问题解决了。错误信息错误!它不应该是:

  

文件&#34; obj \ Debug \ android \ bin \ packaged_resources&#34;不存在。

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

答案 2 :(得分:4)

当我添加新图像作为资源时,我遇到了同样的问题。 有一个&#39; - &#39;在文件名中(无效的资源名称字符)。我改名为&amp;删除那个角色,一切都好。 资源名称只能包含0-9,a-z或A-Z或任意组合。

答案 3 :(得分:2)

我遇到了同样的问题,我删除了所有图像文件名已经&#34; - &#34;字符。我的问题解决了

答案 4 :(得分:1)

此错误的另一个原因是您的版本号码可能有浮点数。在我的情况下,我将其更改为整数,一切正常。 (我通过将构建输出切换为详细来发现错误)

答案 5 :(得分:1)

简直有效。

  1. 在一个案例中,我复制并粘贴了以前的工作“packaged_resources” 在bin文件夹中。[问题是它没有反映UI的变化]
  2. 其他我打开了视觉工作室 管理员。
  3. 接下来将“最低目标到Android”更改为降低 项目属性窗口中的apis。
  4. 我建议不要触及设计背后的代码。如果你得到这个错误,只需从工具栏中拉出一些按钮进入设计,视觉工作室就会意识到UI的变化。然后单击“全部保存”,以便在设计器文件中进行必要的更改。

答案 6 :(得分:0)

Mine是一个不同的解决方案(只丢失了半天):我无法让Hockey应用程序与正确版本的应用程序匹配崩溃,并意识到它使用的是VersionCode而不是VersionName所以我将我的代码更改为&#34 ; 0.0.34&#34;和名字一样。由于一些仍然未知的原因,应用程序构建并部署到设备大约3天后才开始出现此错误The file "obj\Debug\android\bin\packaged_resources" does not exist.将其设置回数值可解决问题。

我通过浏览我的GIT日志并重建每次推送找到了问题,直到找到导致问题的那个。

答案 7 :(得分:0)

只是因为版本代码,我将代码设置为'1.0',文件“obj \ Debug \ android \ bin \ packaged_resources”不存在。;我将它设置为'1 ',一切都很好。

答案 8 :(得分:0)

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

enter image description here

答案 9 :(得分:0)

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

答案 10 :(得分:0)

经过以下几个在线建议 - 更新SDK,更新Xamarin等 - 没有一个对我有用。

最后发现我的 AndroidManifest 文件中有一个Android提供商的闹钟活动,如下所示

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

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

  

注意:通过将线放回来测试它,并且在重建时我再次得到相同的错误。   它可以链接到使用任何为其创建包的android提供程序,而不仅仅是AlarmClock。

答案 11 :(得分:0)

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

在我的情况下,我损坏了icon.png文件(从VS xamarin nunit模板生成,不会少!)。一旦我输入了有效的png文件,一切都很好。

答案 12 :(得分:0)

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

enter image description here

enter image description here

答案 13 :(得分:0)

对我来说,它是Target Android版本。我将其设置为

Compile Version

但是将其更改为编译版本(对我而言,它是最新平台)解决了该问题。

enter image description here