【发布时间】:2013-12-12 16:52:55
【问题描述】:
多年来,我一直使用 Eclipse 的 Ant 集成将我的 Android 项目构建为 outlined by Google on this documentation page。这是我最喜欢的构建发布版本的方式,因为我可以简单地在 Eclipse 中点击“运行外部工具”来启动 Ant 构建,它会在后台运行。
从最近(我相信 ADT 22.0 或 22.1)开始,我遇到了以下故障:
[echo] Handling Resources... [aapt] Generating resource IDs... [aapt] invalid resource directory name: C:\path\to\project\bin\res/crunch构建失败
C:\Android\android-sdk\tools\ant\build.xml:653:执行此行时出现以下错误:
C:\Android\android-sdk\tools\ant\build.xml:698: null 返回:1
我不确定这是什么原因,因为 AAPT 似乎自己生成了“紧缩”目录。我尝试清理我的项目并在 Eclipse 中禁用自动构建,但无济于事。
我还尝试在 Eclipse 之外执行 ant release,但这会产生相同的错误。执行ant clean release 也不起作用,因为它试图删除Eclipse 仍在使用的jar。因此,我发现唯一可行的解决方案是:
- 退出 Eclipse
- 等待进程结束
- 执行
ant clean release
这太痛苦了,因为我们知道,重新启动 Eclipse 是一件非常痛苦的事情。此外,所有受影响的项目都需要清理,整个过程需要半个小时。我打开了issue #60496 on b.android.com,但没有听到任何官方回复。
除了硬着头皮改用 Android Studio 之外,还有什么解决办法吗?
【问题讨论】:
-
我也看到了这一点,但仅适用于引用库项目的项目。从您提出的问题来看,对您来说似乎是一样的,尽管您在这里没有提及。你能确认是这样吗?
-
@NickT 是的,有问题的项目引用了许多图书馆项目。
-
我一直在使用 Ant 构建多年,但我无法解决这个错误,没有任何解决方法可以为我修复它,所以我开始对此进行赏金。如果关闭 Eclipse 可以为您解决问题,那么关闭一些项目可能会为您节省一些时间吗?只是一个想法。
-
这不是灵丹妙药,也没有真正解决您的实际问题,即 AAPT 问题,但至少可以为您省去必须退出 eclipse 的麻烦。您可以尝试使用 handle.exe(来自 pstools),这样您就可以删除文件锁定而无需退出 eclipse。 (检查timstall.com/2009/02/killing-file-handles-but-not-process.html)。我在使用 eclipse + windows 时遇到过类似的问题,这个小工具可以救命!
-
@NickT 我过去曾使用 Process Explorer 完成过此操作,但据我了解,强制关闭文件句柄可能非常危险,因为指针可能会被重新用于完全不同的文件,并且可能会损坏系统文件。我不知道这是否只是一个神话,但我宁愿不要冒更大问题的风险。至于简单地关闭项目:不,这与 Eclipse 仍然持有 jars 的问题相同。这似乎是一个错误,因为这当然不应该发生。
标签: android ant android-build