Android App编译不生成包资源

时间:2015-08-30 02:23:54

标签: android xamarin mvvmcross

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

  

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

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

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

可能有用的一些信息:

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

21 个答案:

答案 0 :(得分:48)

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

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

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

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

答案 1 :(得分:18)

我有同样的问题。

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

<强>解决方案:

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

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

PS:

<强> =&GT;文件名:必须仅包含[a-z0-9 _。]

答案 2 :(得分:17)

您需要通过打开详细输出来解压缩。什么阻止了packaged_resources的生成?

在VS2013中选择工具 - &gt;选项 - &gt;构建并执行,选择详细程度Diagnostic。

在VS2015中,相同的选项在工具中 - &gt;选项 - &gt;项目和解决方案 - &gt;建立并运行。

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

答案 3 :(得分:5)

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

1 - 在Visual Studio中:工具&gt;选项&gt;项目和解决方案&gt;建立并运行。

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

1.2 - 关闭对话框。

2 - 查看&gt;输出(Ctrl + W,O)。

3 - 运行构建或重建。

在输出中找到行:

  

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

错误之上是导致错误的原因。

答案 4 :(得分:5)

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

答案 5 :(得分:4)

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

答案 6 :(得分:2)

来自Xamarin Forums

  

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

     

我们遇到的问题是,如果你有Appcombat,RecyclerView   或者像你项目中那样的东西,图书馆的这些   图书馆低于第24版。它们仍在23.2.1而不是第24版。   因此,如果您安装了Build-Tools Rev 24并希望构建项目   构建无法找到您的图书馆的rev24资源包。

     

您可以自行查看转到SDK管理器中,然后选中&#34;已过时&#34;然后转到Extras文件夹,你可以看到   &#34; Android支持库(已淘汰)Rev 23.2.1。然后检查是否   您的Extras文件夹中有Android支持库Rev 24。没有?和   这就是问题所在。我们早期获得了Build Tools的更新   必须等待图书馆更新。然后我们都可以使用Build Tools 24!

     

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

答案 7 :(得分:1)

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

  

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

答案 8 :(得分:1)

在这里使用Xamarin Studio -

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

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

enter image description here

例如,某人使用 -

检查了一些AXML行

机器人:文本=&#34;东西&#34;

并且大写字母T导致此错误 -

Resources / layout / Somefile.axml(11):error APT0000:找不到属性&#39; Text&#39;的资源标识符。在包&#39; android&#39;

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

答案 9 :(得分: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项目。

答案 10 :(得分:0)

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

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

我做了很多事情。工作! &GT;&LT;

修改

它确实回来了......为什么Windows有这么多的错误...认真......

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

开头

答案 13 :(得分:0)

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

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

答案 14 :(得分:0)

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

答案 15 :(得分:0)

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

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

答案 16 :(得分:0)

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

android:id="button"

将其更改为

android:id="@+id/button"

修正了错误。

答案 17 :(得分:0)

首先,我建议你改变&#34;显示来自&#34;构建Xamarin以查看真实错误及其详细信息,如我的情况所示

起初

At first the error wasnt clear

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

请确保NDK目录也已设置

希望这有助于某人

答案 18 :(得分:0)

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

drawable / abcde.png - 编译确定 drawable / abcdef.png - 错误,&#34; obj \ Debug \ android \ bin \ packaged_resources&#34;不存在

如果将图像重命名为不带.png扩展名的文件,则可以正确编译。

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

答案 19 :(得分:0)

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

答案 20 :(得分:0)

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