Ant JAR错误:执行失败:java.io.IOException:无法运行程序... $ {aapt} ": 错误= 2,没有这样的文件或目录。

28

我正在尝试为Unity编译一个简单的Java库,运行 ant jar 后,我收到以下信息:

/Applications/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:649: The following error occurred while executing this line:
/Applications/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:694: Execute failed: java.io.IOException: Cannot run program "/Users/****/UnityProjects/****/JavaTestPlugin/${aapt}": error=2, No such file or directory

这很奇怪,因为我之前已经成功编译过这个类,而且我认为我有所有必要的东西。即Android Studio和相关包(工具、Android 4/5等)。我注意到aapt没有位于我的adt-bundle/sdk/platform-tools目录中,但它在其中一个build-tools目录中。即使将后者包含在我的路径中也没有帮助。

无论如何,我正在运行Mac OS 10.10.3,使用最新版本的Android Studio。这个类在升级到Yosemite之前就已经编译过了。我看到了一些关于如何解决这个问题的建议,但是所有这些建议都适用于Linux而不是Mac OS。


1
Unity3D的正确标签是unity3d。 - aggsol
2个回答

51

你已经更新了Android SDK工具到24.3.2吗?这似乎引起了问题。请在android-sdk-path/tools/ant/build.xml的484行开始添加以下4行内容,希望能解决问题。

<property name="aidl" location="${android.build.tools.dir}/aidl${exe}" />
<property name="aapt" location="${android.build.tools.dir}/aapt${exe}" />
<property name="dx" location="${android.build.tools.dir}/dx${bat}" />
<property name="zipalign" location="${android.build.tools.dir}/zipalign${exe}" />

2
这将修复 Android SDK 的 Linux-64 版本上相同的错误。 - pelya
谢谢,伙计。我已经挣扎了三天了。最终终于成功了! - Anand Gupta
是的,我正在使用Android SDK工具的那个版本。感谢修复;它很有帮助。 - luxchar
太棒了!它在我的Macbook上也起作用了。我刚开始使用NativeScript,运行hello world应用程序。谢谢。 - balanza

3

感谢更新。虽然有点遗憾,但现在是从Ant迁移的时候了。如果Google在发布前不测试代码的这部分,那就表明它已经不再符合Google的路线图了。我们将大多数项目迁移到了gradle,除了那些处于维护阶段的项目。我们中的一些人使用gradle命令行,其余的人使用Android Studio——关于gradle的一个好处是你不再需要单独维护配置文件,而这在Ant的情况下是必须的。 - mesibo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接