我已经解决了这个问题2天了,找不到任何解决办法 .
我在Visual Studio 2017中有一个Xamarin Android应用程序,包含三个项目:
-
Xamarin.Android项目(主要项目)
-
特定于Android的单元测试在设备上运行 - 使用NUnit Templates for Visual Studio创建的
NUnit 3 Test Project (Android)
类型的项目 -
与平台无关的单元测试项目(
Unit Test Project (.NET Framework)
类型的项目)
一切都运作良好,直到现在 . 当我选择我的主项目作为启动项目时,我的应用程序被部署到设备/模拟器 . 当我选择我的特定于Android的单元测试项目时,部署测试项目并在设备/模拟器上由nUnit Xamarin Runners执行单元测试 .
但是几天前我用最新的可用更新更新了我的Visual Studio 2017,现在,当我尝试构建这个特定于android的单元测试项目时 I get the following error :
The file "obj\Debug\android\bin\packaged_resources" does not exist.
我到处搜索,包括this和this 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),但它也没有帮助,我仍然有相同的错误 .
也许值得补充的是,当我尝试在我的应用程序中阅读this教程实施RecyclerView时,这个问题可能已经开始发生,他们建议在SDK Manager中安装Android 7.1.1(API 25) . 然而,在此之后我撤消了我的所有变化,甚至重新命名了VS2017 Xamarin .
你知道为什么会这样吗?我真的很感激任何帮助 . 谢谢!
EDIT 2017-04-09:
呃,我删除了VS2017,用全新的Android SDK安装VS2015仍然是同样的问题:(
14 回答
如果有任何手动删除这些条目,请检查resources.designer.cs中是否有未使用的条目 . 这将解决问题 .
我有同样的问题,我删除所有图像文件名称都有“ - ”字符 . 我的问题解决了
以下几个在线建议 - 更新SDK,更新Xamarin等 - 没有一个对我有用 .
终于发现我的 AndroidManifest 文件中有一个Android提供商的闹钟活动,如下所示
删除此行 - 和 rebuilding 工作正常,没有任何错误,并能够成功部署解决方案 .
此错误的另一个原因是您可能将 float number 作为 version 数字 . 在我的情况下,我将其更改为整数,一切正常 . (我通过将 build output 切换为 Detailed 找到了错误)
这个错误在某种程度上是一个包装器,可能是因为没有创建文件的多种原因 . 关键是查看详细输出并查找导致文件创建失败的基础错误 .
在我的情况下,我损坏了icon.png文件(从VS xamarin nunit模板生成,不会少!) . 一旦我输入有效的png文件,一切都很好 .
我是一个不同的解决方案(只损失了半天):我无法让Hockey应用程序与正确版本的应用程序匹配崩溃,并意识到它使用VersionCode而不是VersionName所以我将我的代码更改为"0.0.34"与名称相同 . 由于一些仍然未知的原因,应用程序在我开始收到此错误之前构建并部署到设备大约3天
The file "obj\Debug\android\bin\packaged_resources" does not exist.
将其设置回数值修复了问题 .我通过回顾我的GIT日志并重建每次推送找到了问题,直到找到导致问题的那个 .
我有同样的问题 . 从图像文件名中删除短划线“ - ”符号后,问题就解决了 . 错误信息错误!它不应该是:
编写这样的错误消息会导致Developer在问题是非法文件名时考虑其他问题 .
有同样的错误,我克服它的方式是启动Android SDK管理器并安装所有更新并删除任何过时的包 . 这件事发生在我身上,因为我的目标是更新的未安装的东西 .
当我添加新图像作为资源时,我遇到了同样的问题 . 文件名中有一个“ - ”(无效的资源名称字符) . 我重命名并删除了那个角色并且一切都很好 . 资源名称只能包含0-9,a-z或A-Z或任意组合 .
它只是因为版本代码,我通过'1.0'设置了代码,文件"obj\Debug\android\bin\packaged_resources"不存在 . ;而我将它设置为'1',一切正常 .
对我来说它是Target Android Version.I把它设置为
但将其更改为编译版本(对我来说这是最新的平台)解决了这个问题 .
我终于找到了问题所在 . 它与SDK Manager或VS版本中的任何组件无关 .
在localization tutorial from developer.xamarin.com之后,我在Android项目中使用
Strings.xml
玩了一下 . 我想从资源中获取我的活动标签,所以在_345848中我定义了:并在
Strings.xml
文件中添加了此值:在这种情况下,我的构建失败并出现上述错误:
The file "obj\Debug\android\bin\packaged_resources" does not exist
当我更改
ActivityAttribute
以直接使用字符串时:构建过程没有任何问题 .
我设法找到了解决方案,但实际上当我尝试使用
Strings.xml
中定义的Label文本时,我没有 Build 起来 .顺便说一句,我设法通过在工具 - >选项 - >项目和解决方案 - >构建和运行中将构建输出详细程度设置为
Diagnostic
找到了问题,它在“输出”窗口中提供了构建失败的详细信息 .这个错误的另一个原因,如果那个android NDK(不是android SDK)不是't right, change de version can resolve the problem: go to Tools/Options/Xamarin/android Configurator and change de folder, in my case I' ve三个,最后一个无法编译,但第二个文件夹版本
xx.r11c
就可以了 .简单地说它有效 .
在一个案例中,我复制并粘贴了以前在bin文件夹中工作的"packaged_resources" . [问题是它没有反映UI的变化]
其他我以管理员身份打开了visual studio .
接下来在项目属性窗口中将"Minimum target to Android"更改为较低的api .
我建议不要触及设计背后的代码 . 如果你得到这个错误,只需从工具栏中拉出一些按钮进入设计,视觉工作室就会意识到UI的变化 . 然后单击“全部保存”,以便在设计器文件中进行必要的更改 .