【问题标题】:Stuck on Xamarin AAPT error卡在 Xamarin AAPT 错误
【发布时间】:2013-07-02 07:56:30
【问题描述】:

我刚刚在 Windows 8 上安装了 Xamarin studio,我创建了一个 C# android 项目,并尝试编译它,但没有成功。

我得到的错误是在 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.

考虑到它给我的数据太少,我真的不知道如何调试它......

【问题讨论】:

    标签: c# android xamarin


    【解决方案1】:

    这个错误主要是由于你项目中的文件名引起的,先检查这些..再看看名字是否有符号和空格...只要纠正它们就不会出现这些类型的错误..

    【讨论】:

    • 这是图像名称中的祝福连字符。祝福你!
    • 我在布局“xxx .x​​ml”的名称中有一个空格!
    • 这个答案为我解决了。我在图像文件的名称中有一个德语 ä。
    • 我本身没有无效字符:我有一个名为 values-21 的文件夹,而不是 values-v21。 (它在 21 之前缺少“v”)。这应该被标记为答案。
    • 我创建了一个新项目,我看到了这个错误。新项目怎么可能出现这样的错误?
    【解决方案2】:

    根据我的经验,这通常是由于资源的一些问题(换句话说,已经添加到资源文件夹下的项目中的东西 - 通常在 Drawable 或 Layout 文件夹中)。

    如果您进入 Resource.Designer.cs 文件,它可能会提供一些关于项目问题所在的线索。

    一种可能的解决方案是删除您添加到项目中的任何其他文件并尝试重建它。

    另一种可行的方法是清理项目构建-> 清理解决方案,然后重新构建解决方案。

    如果您刚刚开始,也许您可​​以开始一个新项目,然后从这个损坏的项目中打开文件并复制它们 - 或者只是部分代码 - 并构建项目,以便您可以诊断哪个文件是错误的.

    如果这对你有用,请告诉我,

    问候, 詹姆斯。

    【讨论】:

    • 嗨,我正在从头开始创建一个项目并直接编译。没有新文件或任何东西。资源目录不变!
    【解决方案3】:

    添加的资源文件(图像、声音等)应仅包含 [a-z0-9_.] - 即除 '_' 和 '.' 之外不允许使用特殊字符,

    否则你会得到这个错误。 “aapt.exe”以代码 1 退出。(MSB6006)“

    【讨论】:

      【解决方案4】:

      当您安装了 Xamarin 不支持的 Android 构建工具时,也可能会出现此类错误。默认情况下,Xamarin.Android 项目更喜欢最新版本的 Android 构建工具。我有 24.0.0-preview,但它不受支持。 您可以通过在 .csproj 文件中添加 AndroidSdkBuildToolsVersion 属性来手动提供构建工具版本。 另见:Xamarin.Android build process

      【讨论】:

        【解决方案5】:

        我已经能够通过删除布局目录中存在的坏 android.axml 文件来解决同样的问题。如果您复制一个文件并且不重命名该文件,它可能存在无效的文件字符,这将在构建过程中导致问题...

        例如: “我的布局(复制).axml”。

        确保正确重命名布局文件,和/或从项目中删除它们并重新构建。

        【讨论】:

          【解决方案6】:

          如果您使用 .resx 文件进行本地化,请确保将其“构建操作”设置为“嵌入式资源”

          【讨论】:

            【解决方案7】:

            对我来说,这个错误发生在两种情况下。

            1) 如果文件名中有错误字符,如果您查找它,至少 appt 会在诊断输出中报告错误。 (构建->日志输出 = 诊断)

            2) 如果您的布局文件或菜单文件引用了拼写错误或丢失的资源。这需要一些狩猎。这是没有诊断的 appt 错误。

            基本上任何 axml 格式的资源文件都可以引用可绘制对象、字符串、颜色、菜单、菜单选择器等。一次打开每个文件,直到找到您引用的内容但资源文件夹中没有的内容。

            【讨论】:

              【解决方案8】:

              将文件属性设置为 android 资产就可以了。

              【讨论】:

              • 我反其道而行之,它奏效了。将属性从 android 资产更改为无。
              【解决方案9】:

              对我来说,资源文件名中的 @ 导致“aapt.exe”退出并出现错误代码,在我重命名资源文件后,错误得到了修复。

              【讨论】:

              • 这是发布问题的可能解决方案,我编辑了我的问题并进一步澄清
              【解决方案10】:

              如果你有一个错误的 9 补丁,你会得到这个错误。我必须在图像的所有四个边上标记可扩展补丁以使错误消失

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-10-18
                • 2013-08-05
                • 2011-10-09
                • 1970-01-01
                相关资源
                最近更新 更多