Android应用程序编译不生成包资源

当试图编译我的Xamarin.Android应用程序时,我得到了编译错误:

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

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

这个错误的原因是什么,我该如何解决这个问题?

一些可能有用的信息:

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

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

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

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

在Visual Studio中更改构build输出详细信息以查看更好的日志输出。

我有同样的问题。

然后我回顾了我的资源文件名。

解:

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

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

PS:

=>文件名:只能包含[a-z0-9_。]

您需要通过打开详细输出来减轻负担。 什么是停止生成packaged_resources?

在VS2013中select工具 – >选项 – >生成并执行,select详细诊断。

在VS2015中,相同的选项在工具 – >选项 – >项目和解决scheme – >生成并运行。

在我的情况下,它是一个Intentfilter的动作属性名称中的连字符,但select详细的输出将指向有问题的行。

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

1 – 在Visual Studio中:工具>选项>项目和解决scheme>构build和运行。

1.1 – 在下拉菜单中:MSBuild项目构build输出详细程度:>诊断。

1.2 – closures对话框。

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

3 – 运行构build或重build。

在输出中find这一行:

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

刚刚在这个错误之上的是什么导致了错误。

我还发现,删除工具/预览频道和Android N和安卓SDK构build工具第24修订包,完成一个构build和工作。这是一个完整的新的便携式项目/ android / ios

另一种可能是您在安装的Android SDK构build工具中遇到问题。 对于我来说,当我删除了修订版24的包时,它工作。

来自Xamarin论坛 :

首先在你的android sdkpipe理器中去和预览工具。 如果你还没有安装它,但仍然得到相同的错误,然后去和卸载Android SDK构build工具修订24

我们这里的问题是,如果你的项目中有Appcombat,RecyclerView或类似的东西,那么这些库的rev是低于rev24。它们仍然是23.2.1,而不是rev​​.24。所以如果你安装了构build工具修订版24,并希望build立你的项目build设无法find你的图书馆的rev24资源包。

你可以自己检查它在 SDKpipe理器中,然后select“Obsolete”,然后进入文件夹Extras,在那里你可以看到“Android Support Library(Obsolete)Rev 23.2.1。然后检查是否有Android支持库修订版24,在你的Extras文件夹中,不是吗?这就是问题所在,我们得到了更新的构build工具,并且必须等待库更新,那么我们都可以使用构build工具24!

所以只有更新到BuildTools Rev 24,当我们得到支持图书馆的更新,并有rev24图书馆。

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

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

在这里使用Xamarin Studio –

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

如果您在首选项中打开详细/诊断,则可以search构build输出(或包装输出)以查找ERROR字样。

在这里输入图像说明

例如,某人在某些AXML行中签入了 –

机器人:文本=“东西”

和大写T是造成这个错误 –

资源/布局/ Somefile.axml(11):错误APT0000:找不到属性'文本'包'android'中的资源标识符

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

首先,我build议你改变“展示出来”build设Xamarin看到真实的错误和细节,在我的情况

首先

起初错误不是很清楚

接着 将输出更改为Xamarin后 请确保你安装了你的NDK。 这是我的问题,

并请确保NDK目录也已设置

希望这可以帮助别人

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

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

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

编辑

Omg它回来了…为什么Windows有所有的时间这么多的错误…严重..

与我同样烦人的问题! 但是我find了一个解决scheme:仔细阅读这篇文章: https : //gxconsultancy.wordpress.com/2016/04/04/to-use-xamarin-or-not-to-us-xamarin/

简而言之:

  • 确保至less有JDK 32位版本8 – 对于JRE,JDK安装套件包含在Oracle中;

  • 设置您的项目使用Xamarindebugging器(右键单击您的项目,点击属性/安卓选项/包装/debugging器);

  • 而现在最奇怪的是:删除应用程序/资源/绘图文件夹; 有一个工作的Xamarin项目,并将其“可绘制的”文件夹复制到不稳定的项目(通常有几个子文件夹,如drawable-hdpi,drawable-mdpi等)。

  • 重build你的Android项目。

我有这个问题,所以我删除了构build工具24.0.0,我使用构build工具23.0.3和解决的问题。 尝试一下!

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

遇到同样的问题在VS 2015和Xamarin 7.2.0.7。 在我的情况下,这个问题突然发生了,并且发现了axml中元素名称错误导致的问题,用蒂亚戈上面的答案来描述。

所以我没有find与aapt.exe提到的行Tiago,但我然后我试图search关键字failed的输出。 然后我发现有人告诉我有关margin 。 在android中,margin是使用android:layout_margin设置的。 我玩元素,忘了把android:margin ,也就是为什么它发生如此多的成功运行后突然。 修复它,并build立成功。

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

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

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

对我来说,这个错误是由于在布局xml中有一个无效的属性值造成的。 我有

 android:id="button" 

改变它

 android:id="@+id/button" 

修复了错误。

不知道这是一个迟到的答案,但这个具体的错误信息发生的原因有两个:

  1. (最有可能的情况):在你的布局文件中,你可能提到了一个资源(drawable / image)不正确。 例如,图像位于mipmap文件夹path中,但您已将其错误指向了drawable文件夹path。

  2. 每个评论都有一个连字符或特殊字符,或者以数字开头。 但是,请注意,在这种特定情况下,您将主要看到aapt.exe has stopped或者appt.exe has exited with error code 1错误。 我不知道你是否会得到obj\Debug\android\bin\packaged_resources not found错误。 我的经验说上面的第1点是这样的。

在Windows上的Visual Studio 2017 Xamarin安卓项目中得到这个错误。 经过对资源文件的大量实验后,我发现文件夹长度和graphics文件在可绘制文件夹中的扩展名会影响到编译的结果!

drawable / abcde.png – 压缩好的
drawable / abcdef.png – 错误,“obj \ Debug \ android \ bin \ packaged_resources”不存在

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

花了很多时间,感到困惑: – /

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