Android App编译不生成包资源

问题描述 投票:40回答:22

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

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

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

导致此错误的原因是什么?如何解决此问题?

一些可能有用的信息:

  • 该项目是跨平台PCL项目 - 核心,Android和iOS项目
  • 该项目使用MVVM Cross
android xamarin mvvmcross
22个回答
48
投票

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

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

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

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


0
投票

首先,我建议你改变“show out put”Build to Xamarin来查看真实错误及其细节,如我所见

首先

At first the error wasnt clear

然后After changing output to Xamarin请确保您正确安装了NDK。那是我的问题,

并请确保NDK目录也已设置

希望这有助于某人


0
投票

我刚刚失去了7个小时的一天......你知道我做了什么吗?

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

我做了fu **** n'的作品! > <

编辑

它确实回来了......为什么Windows有这么多错误...严重..


0
投票

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

简而言之:

  • 确保至少有JDK 32位版本8 - 与JRE相同,包含在Oracle的JDK安装工具包中;
  • 设置项目以使用Xamarin调试器(右键单击项目,点击Properties / Android Options / Packaging / Debugger);
  • 而现在最奇怪的是:删除app / Resources / drawable文件夹;有一个工作的Xamarin项目并将其“drawable”文件夹复制到不稳定的项目(通常有几个子文件夹,如drawable-hdpi,drawable-mdpi等堡垒)。
  • 重建您的Android项目。

0
投票

我遇到了问题所以我删除了build-tools 24.0.0并使用了构建工具23.0.3并解决了问题。试试吧!


0
投票

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


0
投票

在VS 2015和Xamarin 7.2.0.7中遇到相同的问题。在我的情况下,问题突然发生,并且结果是由axml中的错误元素名称引起的问题,使用上面的Tiago的答案进行追踪。

所以我没有找到Tiago提到的aapt.exe行,但我尝试在输出中搜索关键字failed。然后我找到一个告诉我关于margin的事。在android中,使用android:layout_margin设置margin。我玩了元素并且忘了并且把android:margin放了,这也是为什么它在经过这么多次成功运行之后如此突然发生。修复它,构建成功。


0
投票

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


0
投票

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

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


0
投票

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

android:id="button"

改变它

android:id="@+id/button"

修正了错误。


0
投票

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

  1. (最有可能的情况):在您的布局文件中,您可能错误地提到了资源(可绘制/图像)。例如,图像位于mipmap文件夹路径中,但您已将其错误地指向drawable文件夹路径。
  2. 根据许多评论,您的资源名称中可能包含连字符或特殊字符,或者以数字开头。但请注意,在这种特定情况下,您将主要看到aapt.exe has stoppedappt.exe has exited with error code 1错误。我不确定你是否会得到obj\Debug\android\bin\packaged_resources not found错误。我的经验表明,上述第一点就是这样。

18
投票

我有同样的问题。

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

解:

一个文件名称中使用“ - ”。 (无效字符)

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

PS:

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


0
投票

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

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

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

花了很多时间并且感到困惑: - /


0
投票

我有同样的问题。要解决我必须从droid项目中删除所有nuget包,并重新安装xamarin.forms(必须与其他项目中使用的相同版本)。


0
投票

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


17
投票

您需要通过打开详细输出来降低数据。什么阻止了packaged_resources的生成?

在VS2013中,选择工具 - >选项 - >构建并执行,选择详细程度诊断。

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

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


5
投票

请按照以下步骤确定问题:

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

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

1.2 - 关闭对话框。

2 - 视图>输出(Ctrl + W,O)。

3 - 运行构建或重建。

在输出中找到行:

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

刚出现此错误的原因是导致错误的原因。


5
投票

我还发现删除工具/预览频道和Android N和Android SDK构建工具转24中的软件包,完成构建并工作..这是一个全新的便携式项目/ android / ios


4
投票

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


2
投票

来自Xamarin Forums

首先去安装Android sdk管理器中的预览工具。如果您还没有安装它但仍然得到相同的错误,那么去安装Android SDK Build Tools Rev. 24。

我们在这里遇到的问题是,如果您的项目中有Appcombat,RecyclerView或类似的东西,这些库的库版本低于24版。它们仍然在23.2.1而不是在24版。所以如果你安装了Build-Tools Rev 24并且想要构建您的项目,构建无法找到您的库的rev24资源包。

您可以在SDK管理器中自行检查并检查“已过时”然后转到Extras文件夹,在那里您可以看到“Android支持库(已淘汰)Rev 23.2.1。然后检查是否有Android支持库Rev你的Extras文件夹中有24个。没有?这就是问题所在。我们早期获得了Build Tools的更新,并且必须等待Library Update。然后我们都可以使用Build Tools 24!

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


1
投票

基本上问题是资源文件名的特殊性。在我的情况下,我一直收到错误“文件”obj \ Debug \ android \ bin \ packaged_resources“不存在。”:

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


1
投票

在这里使用Xamarin Studio -

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

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

enter image description here

例如,有人检查了一些AXML行 -

机器人:文本=“东西”

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

Resources / layout / Somefile.axml(11):error APT0000:找不到包'android'中属性'Text'的资源标识符

修复错误修复了原始邮件。

© www.soinside.com 2019 - 2024. All rights reserved.