![](/img/trans.png)
[英]The file “obj\Debug\android\bin\packaged_resources” does not exist Xamarin.Android
[英]Visual Studio 2017 - Xamarin - The file “obj\Debug\android\bin\packaged_resources” does not exist
我已经对这个问题进行了2天的斗争,但找不到任何解决方案。
我在Visual Studio 2017中有一个Xamarin Android应用程序,包含三个项目:
NUnit 3 Test Project (Android)
类型的NUnit 3 Test Project (Android)
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找到了错误)
只是它有效。
我是一个不同的解决方案(只有半天丢失):我无法让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',一切都好。
如果有任何手动删除这些条目,请检查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
的第二个文件夹就可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.