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 应用程序,由三个项目组成:
- Xamarin.Android项目(主要)
- Android-设备上的特定单元测试运行 -
NUnit 3 Test Project (Android)
类型的项目使用NUnit Templates for Visual Studio 创建
- 独立于平台的单元测试项目(
Unit Test Project (.NET Framework)
类型的项目)
到目前为止一切正常。当我选择我的主项目作为启动项目时,我的应用程序被部署到 device/emulator。当我选择 Android 特定的单元测试项目时,测试项目已部署,单元测试由 nUnit Xamarin Runners 在 device/emulator.
上执行
但是几天前我用最新的可用更新更新了我的 Visual Studio 2017,现在,在尝试构建这个 android-特定的单元测试项目时 我得到以下信息错误:
The file "obj\Debug\android\bin\packaged_resources" does not exist.
我到处搜索,包括 this and SO 主题。我还完全重新安装了 Visual Studio 2017 和包含 Android SDK 的 Xamarin。没有任何帮助。根据我的阅读,我怀疑我安装的 Android SDK Build-tools 的版本有问题。这是我目前在 SDK 管理器中安装的内容:
正如其他 SO 线程所建议的那样,我尝试卸载最新的 Android SDK Build-tools (25.0.2) 并安装版本 23.0.3(我所有的projects target Android 6.0), 但它也无济于事,我仍然有同样的错误。
也许值得补充的是,当我尝试在我的应用程序阅读 this 教程中实现 RecyclerView 时,这个问题可能已经开始发生,他们建议安装 Android 7.1 .1 (API 25) 在 SDK 管理器中。但是我在那之后撤消了所有更改,甚至重新安装了 VS2017 + Xamarin。
你知道为什么会这样吗?我真的很感激任何帮助。谢谢!
编辑 2017-04-09:
呃,我删除了 VS2017,安装了带有全新 Android SDK 的 VS2015,但仍然是同样的问题:(
我终于找到问题所在了。它与 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
.
中定义的标签文本时它没有构建
顺便说一句,我通过在 工具 -> 选项 -> 项目和解决方案 -> 构建和 运行[ 中将构建输出详细程度设置为 Diagnostic
设法找到了问题所在=40=] 它在输出 window.
中给出了构建失败的详细信息
我的是一个不同的解决方案(只浪费了半天时间):我在让 Hockey 应用程序将崩溃与应用程序的正确版本相匹配时遇到了问题,我意识到它使用的是 VersionCode 而不是 VersionName,所以我将我的代码更改为“ 0.0.34" 同名。由于某些仍然未知的原因,在我开始收到此错误之前,该应用程序构建并部署到设备大约 3 天 The file "obj\Debug\android\bin\packaged_resources" does not exist.
将其设置回数值解决了问题。
我通过回顾我的 GIT 日志并重建每次推送直到找到导致问题的那个推送才发现问题。
此错误的另一个原因是您可能有一个 浮点数 作为您的 版本 编号。就我而言,我将其更改为整数并且一切正常。 (我通过将 build output 切换为 Detailed 来发现错误)
只是因为版本号,我设置了'1.0',文件"obj\Debug\android\bin\packaged_resources"不存在。;我设置为'1' ,一切正常。
有同样的错误,我克服它的方法是启动 Android SDK 管理器并安装所有更新并删除任何过时的软件包。这发生在我身上,因为我的目标是未安装的较新的东西。
很简单。
- 在一个案例中,我复制并粘贴了之前的工作 "packaged_resources"
在 bin 文件夹中。[问题是它没有反映 UI 更改]
- 其他我打开visual studio为
行政人员。
- 接下来将 "Minimum target to Android" 更改为更低
项目属性中的 api windows.
- 我建议不要触及设计背后的代码。如果出现此错误,只需将工具栏中的某个按钮拉到设计中,visual studio 就会意识到 UI 中存在变化。接下来单击全部保存,以便在设计器文件中进行必要的更改。
检查resources.designer.cs中是否有任何未使用的条目,如果有任何手动删除这些条目。
这将解决问题。
我遇到了同样的问题。将图片文件名中的破折号“-”去掉后,问题解决。糟糕的错误信息!不应该是:
The file "obj\Debug\android\bin\packaged_resources" does not exist.
写这样的错误消息导致开发人员考虑其他问题,而问题是非法文件名。
在遵循了几个在线建议之后——更新 SDK、更新 Xamarin 等——none 其中对我有用。
最后发现我的 AndroidManifest 文件中有一个 activity 用于 Android 闹钟提供程序,如下所示
<activity
android:name="com.njcommuter.droid/android.provider.AlarmClock"
android:label="AlarmClock"
.....
/>
删除此行 - 重建 工作正常,没有任何错误,并且能够成功部署解决方案。
Note : testing this by putting the line back, and I get same error again on rebuilding.
It can be linked to using any android provider which creates the package for it, not necessarily AlarmClock only.
我遇到了同样的问题,我删除了所有图像文件名中带有“-”字符的文件。我的问题解决了
我在添加新图像作为资源时遇到了同样的问题。
文件名中有“-
”(资源名称字符无效)。我重命名并删除了那个角色,一切都很好。
资源名称只能由 0-9、a-z 或 A-Z 或任意组合组成。
这个错误在某种程度上是一个包装器,可能有多种原因导致文件未创建。关键是查看详细输出并查找导致文件创建失败的潜在错误。
在我的例子中,我损坏了 icon.png 个文件(直接从 VS xamarin nunit 模板生成,不少于!)。一旦我输入了有效的 png 文件,一切就都建立好了。
此错误的另一个原因,如果 android NDK(不是 android SDK)不正确,更改版本可以解决问题:转到 Tools/Options/Xamarin/android 配置器并更改 de 文件夹,在我的例子中我有三个,最后一个无法编译,但是版本为 xx.r11c
的第二个文件夹可以编译。
对我来说是 Target Android Version.I 设置为
但将其更改为编译版本(对我来说它是最新的平台)解决了问题。
我已经为这个问题奋斗了 2 天,但找不到任何解决方案。
我在 Visual Studio 2017 年有一个 Xamarin Android 应用程序,由三个项目组成:
- Xamarin.Android项目(主要)
- Android-设备上的特定单元测试运行 -
NUnit 3 Test Project (Android)
类型的项目使用NUnit Templates for Visual Studio 创建
- 独立于平台的单元测试项目(
Unit Test Project (.NET Framework)
类型的项目)
到目前为止一切正常。当我选择我的主项目作为启动项目时,我的应用程序被部署到 device/emulator。当我选择 Android 特定的单元测试项目时,测试项目已部署,单元测试由 nUnit Xamarin Runners 在 device/emulator.
上执行但是几天前我用最新的可用更新更新了我的 Visual Studio 2017,现在,在尝试构建这个 android-特定的单元测试项目时 我得到以下信息错误:
The file "obj\Debug\android\bin\packaged_resources" does not exist.
我到处搜索,包括 this and
正如其他 SO 线程所建议的那样,我尝试卸载最新的 Android SDK Build-tools (25.0.2) 并安装版本 23.0.3(我所有的projects target Android 6.0), 但它也无济于事,我仍然有同样的错误。
也许值得补充的是,当我尝试在我的应用程序阅读 this 教程中实现 RecyclerView 时,这个问题可能已经开始发生,他们建议安装 Android 7.1 .1 (API 25) 在 SDK 管理器中。但是我在那之后撤消了所有更改,甚至重新安装了 VS2017 + Xamarin。
你知道为什么会这样吗?我真的很感激任何帮助。谢谢!
编辑 2017-04-09:
呃,我删除了 VS2017,安装了带有全新 Android SDK 的 VS2015,但仍然是同样的问题:(
我终于找到问题所在了。它与 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
.
顺便说一句,我通过在 工具 -> 选项 -> 项目和解决方案 -> 构建和 运行[ 中将构建输出详细程度设置为 Diagnostic
设法找到了问题所在=40=] 它在输出 window.
我的是一个不同的解决方案(只浪费了半天时间):我在让 Hockey 应用程序将崩溃与应用程序的正确版本相匹配时遇到了问题,我意识到它使用的是 VersionCode 而不是 VersionName,所以我将我的代码更改为“ 0.0.34" 同名。由于某些仍然未知的原因,在我开始收到此错误之前,该应用程序构建并部署到设备大约 3 天 The file "obj\Debug\android\bin\packaged_resources" does not exist.
将其设置回数值解决了问题。
我通过回顾我的 GIT 日志并重建每次推送直到找到导致问题的那个推送才发现问题。
此错误的另一个原因是您可能有一个 浮点数 作为您的 版本 编号。就我而言,我将其更改为整数并且一切正常。 (我通过将 build output 切换为 Detailed 来发现错误)
只是因为版本号,我设置了'1.0',文件"obj\Debug\android\bin\packaged_resources"不存在。;我设置为'1' ,一切正常。
有同样的错误,我克服它的方法是启动 Android SDK 管理器并安装所有更新并删除任何过时的软件包。这发生在我身上,因为我的目标是未安装的较新的东西。
很简单。
- 在一个案例中,我复制并粘贴了之前的工作 "packaged_resources" 在 bin 文件夹中。[问题是它没有反映 UI 更改]
- 其他我打开visual studio为 行政人员。
- 接下来将 "Minimum target to Android" 更改为更低 项目属性中的 api windows.
- 我建议不要触及设计背后的代码。如果出现此错误,只需将工具栏中的某个按钮拉到设计中,visual studio 就会意识到 UI 中存在变化。接下来单击全部保存,以便在设计器文件中进行必要的更改。
检查resources.designer.cs中是否有任何未使用的条目,如果有任何手动删除这些条目。 这将解决问题。
我遇到了同样的问题。将图片文件名中的破折号“-”去掉后,问题解决。糟糕的错误信息!不应该是:
The file "obj\Debug\android\bin\packaged_resources" does not exist.
写这样的错误消息导致开发人员考虑其他问题,而问题是非法文件名。
在遵循了几个在线建议之后——更新 SDK、更新 Xamarin 等——none 其中对我有用。
最后发现我的 AndroidManifest 文件中有一个 activity 用于 Android 闹钟提供程序,如下所示
<activity
android:name="com.njcommuter.droid/android.provider.AlarmClock"
android:label="AlarmClock"
.....
/>
删除此行 - 重建 工作正常,没有任何错误,并且能够成功部署解决方案。
Note : testing this by putting the line back, and I get same error again on rebuilding. It can be linked to using any android provider which creates the package for it, not necessarily AlarmClock only.
我遇到了同样的问题,我删除了所有图像文件名中带有“-”字符的文件。我的问题解决了
我在添加新图像作为资源时遇到了同样的问题。
文件名中有“-
”(资源名称字符无效)。我重命名并删除了那个角色,一切都很好。
资源名称只能由 0-9、a-z 或 A-Z 或任意组合组成。
这个错误在某种程度上是一个包装器,可能有多种原因导致文件未创建。关键是查看详细输出并查找导致文件创建失败的潜在错误。
在我的例子中,我损坏了 icon.png 个文件(直接从 VS xamarin nunit 模板生成,不少于!)。一旦我输入了有效的 png 文件,一切就都建立好了。
此错误的另一个原因,如果 android NDK(不是 android SDK)不正确,更改版本可以解决问题:转到 Tools/Options/Xamarin/android 配置器并更改 de 文件夹,在我的例子中我有三个,最后一个无法编译,但是版本为 xx.r11c
的第二个文件夹可以编译。
对我来说是 Target Android Version.I 设置为
但将其更改为编译版本(对我来说它是最新的平台)解决了问题。