我刚刚在Windows 8上安装了Xamarin工作室,我创建了一个C#安卓项目,并尝试编译它没有运气。
我得到的错误是在AAPT工具上,但即使是msbuild的详细输出,我得到的是输出窗口中的以下内容:
Task "Aapt"
Aapt Task
AssetDirectory:
ManifestFile: C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\AndroidManifest.xml
ResourceDirectory: obj\Debug\res\
JavaDesignerOutputDirectory: C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b
PackageName: AndroidLocationLogger.AndroidLocationLogger
UncompressedFileExtensions:
ExtraPackages:
AdditionalResourceDirectories:
LibraryProjectJarsWildcard: obj\Debug\__library_projects__\*.jar
ExtraArgs:
C:\Users\Giuseppe\AppData\Local\Android\android-sdk\platform-tools\aapt.exe package -f -m -M C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\AndroidManifest.xml -J C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b --custom-package androidlocationlogger.androidlocationlogger -F C:\Users\Giuseppe\AppData\Local\Temp\i4va1gur.y4b\resources.apk.bk -S obj\Debug\res -I C:\Users\Giuseppe\AppData\Local\Android\android-sdk\platforms\android-8\android.jar --auto-add-overlay
C:\Program Files\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(707,2): error MSB6006: "aapt.exe" exited with code -1073741816.
Done executing task "Aapt" -- FAILED.
Done building target "_UpdateAndroidResgen" in project "AndroidLocationLogger.csproj" -- FAILED.
我真的不知道如何调试这个,因为它给我的数据很少......
答案 0 :(得分:12)
这个错误主要是由于你的项目中的文件名,首先检查这些错误。如果名称有符号和空格,也要查看...只需更正它们以免受这些类型的错误的影响..
答案 1 :(得分:2)
根据我的经验,这通常是因为资源的一些问题(换句话说,已经添加到资源文件夹下的项目中的东西 - 通常在Drawable或Layout文件夹中)。
如果你进入Resource.Designer.cs文件,它可能会提供一些关于项目问题的线索。
一种可能的解决方案是删除已添加到项目中的任何其他文件并尝试重建它。
另一种可行的方法是清理项目Build->清洁解决方案,然后重建解决方案。
如果您刚刚开始,也许您可以启动一个新项目然后从这个破坏的项目中打开文件并将其复制 - 或者只是代码的一部分 - 并构建项目以便您可以诊断哪个文件是错误的
如果这对你有用,请告诉我,
此致 詹姆斯。
答案 2 :(得分:2)
添加的资源文件(图像,声音等)应仅包含[a-z0-9_。] - 即除了' _'之外不允许使用任何特殊字符。和'。',
否则你会收到此错误。 " aapt.exe"退出代码1.(MSB6006)"
答案 3 :(得分:2)
如果安装了Android构建工具,Xamarin不支持,也可能会出现此类错误。默认情况下,Xamarin.Android项目更喜欢最新版本的Android构建工具。我有24.0.0预览版,但不支持。
您可以通过在AndroidSdkBuildToolsVersion
文件中添加.csproj
属性来手动提供构建工具版本。
另见:Xamarin.Android build process
答案 4 :(得分:1)
我已经能够通过删除布局目录中存在的错误的android.axml文件来解决同样的问题。如果您复制文件并且不重命名该文件,则该文件可能存在无效的文件字符,这将导致在构建过程中出现问题...
例如: " myLayout(copy).axml"。
确保正确重命名布局文件,和/或从项目中删除它们并重新构建。
答案 5 :(得分:1)
如果您使用.resx文件进行本地化,请确保将“Build Action”设置为“Embedded Resource”
答案 6 :(得分:0)
对我来说,这种错误发生在两种情况。
1)如果文件名中包含错误字符,则至少appt会在您查找时报告诊断输出中的错误。 (build-> log output = diagnostics)
2)如果您的布局文件或您的菜单文件引用了资源,则拼写错误或丢失。这需要一些狩猎。这是没有诊断的appt错误。
基本上任何采用axml格式的资源文件都可以引用drawable,字符串,颜色,菜单,菜单选择器等。一次打开一个文件,直到找到您引用的内容,但资源文件夹中没有。
答案 7 :(得分:0)
将文件属性设置为android资产就可以了。
答案 8 :(得分:0)
对我来说,资源文件名中的@是导致带有错误代码的“aapt.exe”退出,在我重命名资源文件后错误得到修复。
答案 9 :(得分:-1)
如果您错误地完成了9补丁,您将收到此错误。我必须在图像的四个边上标记可扩展的补丁以使错误消失