在构buildAndroid项目的Mono时,用代码1退出“aapt.exe”

我把一个相当简单的Mono for Android应用程序放在一起,只是在后台服务中播放“AndroidResource”MP3(从Greg Shackles最新的Visual Studio杂志文章 “MfA中的后台服务”复制而来)。 我把代码放在一起,用我自己的自定义MP3文件,并试图build立它,只是为了得到这个可爱的错误。

"aapt.exe" exited with code 1 

这是错误列表和生成输出日志中唯一的信息。

第1步:获取更多信息

如果你遇到这个错误,希望你也会碰到乔纳森·普赖尔(Jonathan Pryor)的post,回答同样的问题。 build议是打开从MSBuild更详细的日志logging,看看你是否从这些消息中得到一些有用的信息。

在Visual Studio选项对话框中,转到“项目和解决scheme”,然后“构build和运行”。 将“MSBuild项目生成输出详细信息”从“最小”切换到“正常”,然后再次生成项目。 这样做之后,我收到了这个更有帮助的消息。 显然,资源不能包括字母,数字,句号和下划线( [a-z0-9_.] )。

MSBuild正常详细记录

在需要的限制内重新命名文件并重新构build。

虽然这个错误信息可能会出现比文件名限制更多的情况,文件名更改完全解决了这个问题。

对于我来说类似的解决scheme,我需要从资源文件夹中的PNG文件名中删除破折号(' – ')

在Mono.Android项目中,当资源/布局axml文件在名称中包含空白时会出现此错误,例如。 “xxxx.xaml的副本”

在Mono.Android项目中,如果资源/可绘制文件名具有 – 例如:“File-Name.png尝试下划线:”File_Name.png“

是的,请记住没有:

  1. 资源,图片,资产,布局axml以数字开头
  2. 用空格检查文件名。 (我有这个问题,其中一个布局在扩展名“.axml”之前有一个结束空格)
  3. 检查你的图像,资源,文件,布局或其他任何有连字符( – )。 他们不应该在那里。

对我来说这是一个资源名称的问题。 我的照片之一是从MonoTouch,因此它的文件名包括一个“@ 2x”的文件名。 删除这个aapt.exe后不再抱怨,并build立了解决scheme。

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

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

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

在Drawable文件夹中检查您的图像/ png(s)。 一旦它被排除在项目之外,它给了我一个PNG图像的错误。 工作正常…

我通过从android中删除包含业务逻辑的可移植库来解决这个问题,然后分别重build它。 重build后,清理你的android项目,并再次添加引用到您的便携式类库。 最后构buildandroid项目