【问题标题】:How to solve "invalid resource directory name", resource "crunch"如何解决“资源目录名无效”、资源“紧缩”
【发布时间】:2013-11-02 20:08:45
【问题描述】:

最近我从 eclipse 中得到这个错误: “无效的资源目录名称”,资源“紧缩”,键入“Android AAPT 问题” 这是什么问题以及如何解决?

【问题讨论】:

  • dull_boy 的评论帮助我,非常感谢!

标签: java android


【解决方案1】:

修复:

从菜单中点击Project->Clean...

将出现一个弹出窗口。选中出现此问题的项目的复选框,然后单击“确定”。

等着瞧吧。

【讨论】:

  • 在 Eclipse 上使用 ADT 时,是否有其他人有过这样的经验,例如,您必须不断地重建、清理或手动构建或其他任何东西?我正在进行的项目是彻底搞砸了,还是 ADT/Eclipse 彻底搞砸了?无论如何,是的,Eclipse 中的另一个问题通过 make clean 解决了......
  • 这对我不起作用。还有什么我可以做的吗?
  • @user435779 Android 的 Ant 构建过程被彻底搞砸了。
  • 不起作用。并删除 crunch 文件(如其他地方所建议的);该文件只是重新出现。
  • 如果您从命令行运行 ant,请使用命令 'ant clean release' 而不仅仅是 'ant release'。如果您使用 eclipse 禁用 autobuild 删除 crunch 文件夹,然后执行 ant 更多信息:pissedoff-techie.blogspot.in/2014/07/…
【解决方案2】:

Ant 和 Eclipse 的 ADT 插件将 .apk 文件打包到不同的构建链和临时生成文件夹中。 CrunchADT 创建。如果您在工具之间切换,最好的做法是使用clean 开始每一步。如果您之前使用过 eclipse 中的 ADT,请使用 ant clean。如果您之前使用过 ant,请在 Eclipse 中使用 Projects -> clean ...。希望这能解决您的问题。重新启动 Eclipse 也会有所帮助。

【讨论】:

  • 当项目在 Eclipse 中打开时,我尝试使用 ant 进行构建。退出 Eclipse 解决了这个问题。
  • 在我的主项目及其引用的库项目中使用 ant clean 就可以了
【解决方案3】:

我遇到了同样的问题:资源目录名称无效:D:\work\merge\Client_2_24\Client\bin\res/crunch。我试过 Project->Clean 但没有用。然后我直接删除了目录紧缩,它起作用了:)

【讨论】:

  • 我刚刚删除了整个 bin 目录。它有效。谢谢。
【解决方案4】:

这个问题是由于Android要求在res文件夹中只能有drawabledrawable-xhdpi等。 crunch 不是其中之一。

这里有评论。

https://stackoverflow.com/a/7168818/2411379

【讨论】:

  • 你知道为什么我可能会得到与 drawable-xxxxhdpi 相同的“错误:无效的资源目录名称”吗?
  • 谢谢@Toni。这对我来说是解决办法。我试图将“资源/资产”用于我的资源。我将其更改为“res/drawable”,它在清洁和重建后就像一个魅力。
【解决方案5】:

首先,我发现当在 Eclipse 中构建我的代码和在命令行上通过ant 构建它时交替出现这种烦恼。

涉及清理项目的解决方案很好,但是,鉴于大部分代码大量使用模板这一事实,我的源代码树需要 5 分钟以上的时间来构建。我尽量避免清洁,以免不得不进行完全重建。所以这是我的解决方案:

将以下内容添加到 build.xml:

<target name="-pre-build">
    <delete>
        <fileset dir="${basedir}" includes="**/crunch/**"/>
    </delete>
</target>

ant 中的这个删除任务将递归删除 build.xml 文件所在目录下的所有crunch 目录。每当我在命令行上执行 ant debug/release 时,此任务就会运行,这意味着我再也不必因为这种紧缩的废话而清理我的项目了!

【讨论】:

    【解决方案6】:

    我可以通过“ant clean debug”解决这个问题。上述从 Eclipse 中清理项目的建议对我不起作用。

    【讨论】:

      【解决方案7】:

      如果您不想使用 eclipse 并通过 ant release -Dsdk.dir=$SDK_ROOT 收到此错误消息,您可以运行 ant clean -Dsdk.dir=$SDK_ROOT

      【讨论】:

        【解决方案8】:

        当我使用“New Project -> Android Project from Existing Code”错误地将项目导入 Eclipse 时,这发生在我身上。 它导致 crunch 目录出现在意想不到的地方。 使用“导入 -> 现有项目到工作区”导入解决了它。

        【讨论】:

          【解决方案9】:

          在清单文件所在的文件夹中创建一个名为 ant.properties 的文件。 添加 aapt.ignore.assets=crunch :(无论您的 android sdk/tools/ant/build.xml 文件中的默认值是什么,在属性上方注释)

          从命令行使用cordova时,它使用ant 使用 Eclipse 时,它​​使用 android 包管理器

          包管理器将 png 文件压缩并放入 crunch,crunch 是一个无效的 ant 文件夹名称,如果 eclipse 设置为自动构建,每次你删除 crunch 时,它都会由 android 包管理器重新构建。您可以通过右键单击项目、属性、构建器、取消选中 android 包管理器、删除 crunch 文件夹来测试它,它永远不会再回来,您也永远不会再有压缩的 png 文件。

          删除文件夹而不做任何这些事情并且打开eclipse只是掷骰子,eclipse会在cordova进入包资源阶段之前自动生成紧缩

          【讨论】:

          • 是的,一千次是的。只需在默认过滤器中包含 crunch 目录即可。是的。
          【解决方案10】:

          当我将 android SDK 构建工具更新到版本 18 和 19 时,我遇到了同样的问题。

          我的解决办法是:

          1. 转到谷歌服务库项目-属性-构建器-取消选中所有构建器
          2. 删除bin文件夹下的所有文件
          3. 运行 ant 任务来清理这个项目。

          我认为问题在于 eclipse 会自动构建,并生成与 ant build 冲突的文件。

          【讨论】:

            【解决方案11】:

            首先尝试清理您的项目。如果它运作良好,那么很好,否则进入 bin -> res -> 有一个名为 Crunch 的文件夹。 直接删除该文件夹 并再次清理项目。

            它会解决问题。

            【讨论】:

              【解决方案12】:

              而我的错误是

              错误:任务 ':app:mergeDebugResources' 执行失败。 /path/to/project/app/src/main/res/drawable-xxdpi: Error: Invalid resource directory name

              注意“drawable-xxdpi”不是有效的文件夹名称,而“drawable-xxhdpi”是正确的。

              【讨论】:

                【解决方案13】:

                Android 标准可能不允许您的某些文件夹名称:检查您创建的文件夹,然后重命名它们。

                【讨论】:

                • 参考标准,甚至可能提供不允许的文件夹名称的示例。
                猜你喜欢
                • 2013-07-25
                • 1970-01-01
                • 1970-01-01
                • 2019-12-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-05-06
                相关资源
                最近更新 更多