【问题标题】:Android App Compile Not Generating Package ResourcesAndroid App 编译不生成包资源
【发布时间】:2015-08-30 02:23:53
【问题描述】:

在尝试编译我的 Xamarin.Android 应用时,我收到编译错误:

错误 3 文件“obj\Debug\android\bin\packaged_resources”不存在。 MyApp.UI.Droid

在我进行了一些更改(添加了一些新类 - 不记得它是什么)之后发生了这个错误。但我没有更改任何项目设置,也没有去删除obj 文件夹中的实际文件。

此错误的原因是什么,我该如何解决?

一些可能有用的信息:

  • 该项目是一个跨平台 PCL 项目 - 核心、Android 和 iOS 项目
  • 项目使用MVVM Cross

【问题讨论】:

    标签: android xamarin mvvmcross


    【解决方案1】:

    我遇到了同样的问题。确保您的资源文件不包含任何特殊字符

    您可能遇到的实际错误是:

    Invalid file name: must contain only [a-z0-9_.]
    

    在 Visual Studio 中更改构建输出的详细程度以查看更好的日志输出。

    【讨论】:

    • 谢谢!我花了几个小时试图弄清楚为什么我的 resource.designer.cs 文件没有更新。应标记为答案。我有许多名称中带有破折号的图像。
    • 你好@Chad 我刚刚在 xamarin 中创建了一个新项目,我什至没有触及任何类或文件,而且我检查了文件名中没有任何“-”并出现类似“文件”的错误obj\Debug\android\bin\packaged_resources" 不存在。"提前致谢。
    【解决方案2】:

    我也遇到过同样的问题。

    然后我检查了我的资源文件名。

    解决方案:

    一个文件在其名称中使用了 "-"。 (无效字符)

    然后我替换为“_”下划线)。

    PS:

    => 文件名:必须只包含 [a-z0-9_.]

    【讨论】:

      【解决方案3】:

      您需要通过打开 Verbose 输出来减少垃圾。是什么阻止了 packaged_resources 的生成?

      在VS2013中选择Tools --> Options --> Build and execute,选择verbosity Diagnostic。

      在 VS2015 中,工具 --> 选项 --> 项目和解决方案 --> 构建和运行中的选项相同。

      在我的例子中,它是 Intent 过滤器的操作属性名称中的连字符,但选择详细输出会将您指向有问题的行。

      【讨论】:

      • 非常感谢。使用您的解决方案,我立即发现我的一个资源文件名无效(文件名中也是连字符)。
      • 请注意至少在 Visual Studio 2015 中,它是 Tools > Options > Projects and Solutions > Build and Run,并且存在“构建输出详细程度”和“构建日志详细程度”。
      • 感谢提示,我会修改答案。
      【解决方案4】:

      按照以下步骤确定问题:

      1 - 在 Visual Studio 中:工具> 选项> 项目和解决方案> 构建和运行。

      1.1 - 在下拉列表中:MSBuild 项目构建输出详细程度:> 诊断。

      1.2 - 关闭对话框。

      2 - 查看> 输出 (Ctrl + W, O)。

      3 - 运行构建或重建。

      在输出中找到以下行:

      C:\程序文件 (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(1665,3): 错误 MSB6006:“aapt.exe”以代码 1 退出。

      此错误上方的内容是导致该错误的原因。

      【讨论】:

      • 在我的例子中,AXML 文件(布局文件)中存在无效标签。 AXM 文件的 VS2017 智能感知已损坏,并且在构建应用程序时,错误中没有出现任何内容。杀了一天,会浪费更多的时间,但你对详细输出级别的建议是非常有帮助的。
      【解决方案5】:

      我还发现删除了 Tools/Preview Channel 和 Android N AND ALSO Android SDK Build Tools rev 24 中的包,完成了构建并工作了。这是一个全新的便携式项目/android/ios

      【讨论】:

      • 谢谢,我为这个问题苦苦挣扎了好几个小时。删除这些包对我有用。使用这些预览包,即使您的图像文件名中没有任何特殊字符,也会出现此问题。此问题的常见解决方案是图像文件名,但也应考虑此答案。
      【解决方案6】:

      另一种可能是您安装的 Android SDK 构建工具有问题。对我来说,当我删除第 24 版的软件包时,它起作用了。

      【讨论】:

        【解决方案7】:

        来自Xamarin Forums

        首先在你的 android sdk 中卸载预览工具 经理。如果你还没有安装它,但仍然得到同样的错误,那么 去卸载Android SDK Build Tools Rev. 24

        我们这里的问题是,如果你有 Appcombat,RecyclerView 或您项目中的类似内容,这些库的版本 库低于 rev 24。它们仍在 23.2.1 上,但不在 rev 24 上。 因此,如果您安装了 Build-Tools Rev 24 并想要构建您的项目 build 找不到你的库的 rev24 资源包。

        你可以自己查看进入SDK Manager,勾选“Obsolete”,然后进入文件夹Extras,就可以看到了 “Android Support Library (Obsolete) Rev 23.2.1。然后检查是否 您的 Extras 文件夹中有 Android 支持库 Rev 24。不?和 这就是这里的问题。我们很早就得到了构建工具的更新,并且 必须等待库更新。然后我们都可以使用 Build Tools 24 了!

        因此,只有在我们获得支持库的更新并拥有 rev24 库时才更新到 BuildTools Rev 24。

        【讨论】:

          【解决方案8】:

          基本上问题在于资源文件名的特殊字符。 就我而言,我不断收到错误“文件“obj\Debug\android\bin\packaged_resources”不存在。”

          ..\Resources\drawable\company-app-log.png 在字母字符之间有 -(hyphen) 是问题的根本原因。 p>

          【讨论】:

            【解决方案9】:

            在此处使用 Xamarin Studio -

            有时这是由 AXML 错误引起的。

            如果您在首选项中打开详细/诊断,您可以 在构建输出(或您的打包输出)中搜索 ERROR 一词。

            例如,有人用 - 签入了一些 AXML 行

            android:Text="something"

            大写的 T 导致了这个错误 -

            Resources/layout/Somefile.axml(11): error APT0000: No resource identifier found for attribute 'Text' in package 'android'

            修复错误修复了原始消息。

            【讨论】:

              【解决方案10】:

              首先,我建议您将“show out put from”Build 更改为 Xamarin,以查看在我的案例中看到的真正错误及其详细信息

              一开始

              然后 请确保您正确安装了 NDK。那是我的问题,

              请确保也设置了 NDK 目录

              希望这对某人有所帮助

              【讨论】:

                【解决方案11】:

                我一天只浪费了 7 个小时。你知道我做了什么吗?

                Project.Droid -> Resources -> RightClick on the Resource.Designer.cs -> Delete

                我做了他妈的工作! >

                编辑

                天哪,它确实回来了……为什么 Windows 一直有这么多错误……说真的……

                【讨论】:

                  【解决方案12】:

                  和我一样烦人的问题! 但我找到了解决方案:仔细阅读这篇文章: https://gxconsultancy.wordpress.com/2016/04/04/to-use-xamarin-or-not-to-us-xamarin/

                  简而言之:

                  • 确保您至少拥有 JDK 32 位版本 8 - JRE 相同,包含在 Oracle 的 JDK 安装工具包中;

                  • 设置您的项目以使用 Xamarin 调试器(右键单击您的项目,点击属性/Android 选项/打包/调试器);

                  • 现在最奇怪的是:删除app/Resources/drawable文件夹;有一个工作的 Xamarin 项目并将其“drawable”文件夹复制到不稳定的项目(通常有几个子文件夹,如 drawable-hdpi、drawable-mdpi 等)。

                  • 重建您的 Android 项目。

                  【讨论】:

                  • 仅链接的答案通常是 Stack Overflow 上的frowned upon。随着时间的推移,链接可能会萎缩并变得不可用,这意味着您的答案将来对用户毫无用处。如果您可以在实际帖子中提供答案的一般详细信息,并引用您的链接作为参考,那将是最好的。
                  【解决方案13】:

                  我遇到了问题,所以我删除了 build-tools 24.0.0 并使用了 build-tools 23.0.3,问题就解决了。试试看!

                  【讨论】:

                    【解决方案14】:

                    确保您的资源没有任何特殊字符或以数字开头

                    【讨论】:

                      【解决方案15】:

                      在 VS 2015 和 Xamarin 7.2.0.7 中遇到了同样的问题。在我的情况下,这个问题突然发生了,原来是由 axml 中的错误元素名称引起的问题,使用上面 Tiago 的答案进行了跟踪。

                      所以我没有找到 Tiago 在 aapt.exe 中提到的那一行,但我随后尝试在输出中搜索关键字 failed。然后我发现有人告诉我margin。在 android 中,边距使用android:layout_margin 设置。我玩了 element 并忘记了,而是输入了android:margin,这也是为什么它在这么多成功运行后突然发生的原因。修复它并且构建成功。

                      【讨论】:

                        【解决方案16】:

                        在我的情况下,错误是因为我将清单中的版本号设置为 1.0。显然版本号必须是整数。

                        【讨论】:

                          【解决方案17】:

                          遇到了同样的问题。我的错误出现在清单中:我将版本代码(版本号)设置为“1.0.0”,这是不允许的。它只需要整数,所以我不得不恢复为“1”。

                          我混淆了版本代码和版本名称。

                          【讨论】:

                            【解决方案18】:

                            对我来说,这个错误是由布局 xml 中的属性值无效引起的。我有

                            android:id="button"
                            

                            改成

                            android:id="@+id/button"
                            

                            修正了错误。

                            【讨论】:

                              【解决方案19】:

                              不确定这是否是迟到的答案,但出现此特定错误消息的原因有两个:

                              1. (很可能是这种情况):在您的布局文件中,您可能错误地提到了资源(可绘制/图像)。例如,图像位于mipmap 文件夹路径中,但您错误地将其指向drawable 文件夹路径。

                              2. 对于许多 cmets,您的资源名称中可能有一个连字符或特殊字符,或者它以数字开头。但是,请注意,在这种特定情况下,您通常会看到 aapt.exe has stoppedappt.exe has exited with error code 1 错误。我不确定您是否会收到obj\Debug\android\bin\packaged_resources not found 错误。我的经验表明,上述第 1 点就是这种情况。

                              【讨论】:

                                【解决方案20】:

                                在 Windows 上的 Visual Studio 2017 Xamarin android 项目中出现此错误。 经过对资源文件的大量实验,我发现drawable文件夹中图像文件的文件名长度和扩展名会影响编译结果!

                                drawable/abcde.png - 编译成功
                                drawable/abcdef.png - 错误,“obj\Debug\android\bin\packaged_resources”不存在

                                如果将图像重命名为不带 .png 扩展名的文件,则编译不会出错。

                                花了很多时间,很困惑:-/

                                【讨论】:

                                  【解决方案21】:

                                  我遇到了同样的问题。为了解决这个问题,我不得不从 droid 项目中删除所有 nuget 包,并再次重新安装 xamarin.forms(必须与其他项目中使用的版本相同)。

                                  【讨论】:

                                    【解决方案22】:

                                    有同样的问题。这是因为我有一个名称中包含“-”字符的 .png 文件。只需确保您的任何资源都没有“-”连字符

                                    【讨论】:

                                      猜你喜欢
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2019-04-06
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 1970-01-01
                                      相关资源
                                      最近更新 更多