繁体   English   中英

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模板为Visual Studio创建的NUnit 3 Test Project (Android)类型的NUnit 3 Test Project (Android)
  3. 独立于平台的单元测试项目( Unit Test Project (.NET Framework)类型的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仍然是同样的问题:(

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

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定义的Label文本时它没有构建。

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

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

文件“obj \\ Debug \\ android \\ bin \\ packaged_resources”不存在。

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

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

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

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

只是它有效。

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

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

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

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

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

在此输入图像描述

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

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

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

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

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

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

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

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

这个错误的另一个原因,如果说android NDK(不是android SDK)不对,更改de版本可以解决问题:转到Tools / Options / Xamarin / android Configurator并更改de文件夹,在我的情况下我是三,最后一个无法编译,但是版本为xx.r11c的第二个文件夹就可以了。

在此输入图像描述

在此输入图像描述

对我而言,它是Target Android Version。我已将它设置为

编译版本

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

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM