【问题标题】:aapt error 138 processDebugResourcesaapt 错误 138 进程调试资源
【发布时间】:2014-04-24 11:29:34
【问题描述】:

今天在构建/制作项目时遇到了这个令人沮丧的错误,这似乎是因为使用构建工具 19.0.1、19.0.2 和 19.0.3 安装 Android SDK 22.6(也尝试过 22.6.1)。 aapt 错误导致 R.java 无法生成。

我认为这是与项目相关的事情,因为我有另一个可以构建的项目。我尝试清理项目/工作区、新工作区、重新安装 Eclipse 和 Android SDK,然后移植到 Android Studio gradle,这是我在下面包含的错误。

编辑:我还将项目恢复为之前有效的提交

有人遇到过这种事吗?通常一个干净的作品,但不是这次。

Error:Execution failed for task ':MyApp:processDebugResources'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Users/scottab/dev/adt-bundle-mac-x86_64/sdk/build-tools/19.0.3/aapt package -f --no-crunch -I /Users/scottab/dev/adt-bundle-mac-x86_64/sdk/platforms/android-19/android.jar -M /Users/MyApp/build/manifests/debug/AndroidManifest.xml -S /Users/MyApp/build/res/all/debug -A /Users/MyApp/build/assets/debug -m -J /Users/MyApp/build/source/r/debug -F /Users/MyApp/build/libs/MyApp-debug.ap_ --debug-mode --custom-package com.myapp.android --output-text-symbols /Users/MyApp/build/symbols/debug
  Error Code:
    138

【问题讨论】:

  • 您最近是否更改过任何资源? AAPT 崩溃往往是由于缺少引用的资源(例如,菜单资源的 @string 引用不存在)
  • 我查看了最近的更改,没有发现任何明显的内容,但恢复到之前编译过的几个提交。
  • 不仅要仔细检查菜单引用,还要检查您的命名空间。特别是,发生这种情况的一种简单方法是,如果您有 app:showAsAction 而不是 android:showAsAction。

标签: android eclipse android-studio aapt


【解决方案1】:
dexOptions {
    incremental false
    preDexLibraries = false
    jumboMode = false
    javaMaxHeapSize "3g"
}

【讨论】:

    【解决方案2】:

    今天我遇到了同样的问题,但这里没有答案,也没有评论,对我有帮助。

    最后有2个问题,可能一个是由另一个引起的......

    1. 我的防病毒软件 (Avast) 从一个 SDK 文件中检测到“威胁”......所以我的 Android Studio 可能认为我的“build.graddle”文件中没有包含 AppCompat 库并自动添加了第二个。它看起来像这样:

      compile "com.android.support:appcompat-v7:21.0.+" 
      compile "com.android.support:appcompat-v7:21.+"
      

    所以我删除了其中一个并恢复了 R 类,但“appt”错误仍然存​​在。

    1. 显然我亲爱的 Avast 从 SDK 文件夹中获取了一些 exe,所以我启动了“SDK Manager”。在管理器中,我使用的“SDK 编译工具”(我认为是 2.1.1)没有被检查(可能校验和失败),所以我重新安装了它。

    瞧!,它奏效了,现在我很高兴。

    【讨论】:

      【解决方案3】:

      这是我为克服错误而编写的代码:

      <?xml version="1.0" encoding="utf-8"?>
      
      <menu xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:blogreader="http://schemas.android.com/apk/res-auto "
          >
      
              <item  android:id="@+id/action_settings"
                android:title="@string/action_settings"
                android:orderInCategory="100"
                blogreader:showAsAction="never" />
      </menu>
      

      在 blogreader 中是应用程序的名称。

      参考:Adding action buttons

      【讨论】:

        【解决方案4】:

        我有点晚了,但如果您最初在项目中包含 appcompat,后来又将其删除,那么您的菜单 xml 中可能有一个过时的引用。

        这是 appcompat 的菜单外观

        <item android:id="@+id/action_settings"
            android:title="@string/action_settings"
            android:orderInCategory="100"
            app:showAsAction="never" />
        

        看到app:showAsAction="never"了吗?这就是我的问题所在。将其切换回 android:showAsAction="never" 为我修复了它。

        【讨论】:

        • 这是我的问题,菜单.xml是Android Studio自动生成的
        • Android Studio 自动为我生成了一个菜单文件。即使我选择了 minSdk 为 14(Android 4.0),它还是决定在应用程序的某些部分仍然使用 AppCompat。用android 替换app 解决了这个问题。
        • 这发生在我使用 AS->New->Blank Activity 时。它添加了 menu.xml,更新了 build.gradle,并添加了 appcompat 导入。所有这些都需要删除,以便 gradle :app:processDebugResources 任务中的神秘失败消失。
        • 太棒了,正是发生在我身上,这解决了它。
        【解决方案5】:

        这是 AAPT 中的一个错误,当它看到对不存在资源的引用时会崩溃。不幸的是,它需要您检查资源文件以尝试发现错误,因为它往往不会为您提供有用的信息。

        这写在https://code.google.com/p/android/issues/detail?id=61308 中,如果您查看那里,您会发现其他用户已修复以解决崩溃问题的示例。

        【讨论】:

        • 谢谢你,我删除了所有的 menu.xml 文件并评论了它们的使用位置和繁荣!我有R!将它们一一添加我发现了问题文件-尽管看起来很好。当我回滚时,我显然没有回滚足够远。
        • 非常有用的答案 - 在我的例子中是一个简单的拼写错误 serch/search
        猜你喜欢
        • 2022-10-18
        • 1970-01-01
        • 2019-01-29
        • 2019-12-26
        • 2019-05-01
        • 1970-01-01
        • 2018-10-02
        • 2020-07-02
        • 1970-01-01
        相关资源
        最近更新 更多