Cordova 构建失败,无法找到 ${appt}

Cordova build fails, can't find ${appt}

命令 cordova build android 失败,输出如下

BUILD FAILED
F:\Programs\SDK\tools\ant\build.xml:597: The following error occurred while executing this line:
F:\Programs\SDK\tools\ant\build.xml:649: The following error occurred while executing this line:
F:\Programs\SDK\tools\ant\build.xml:694: Execute failed: java.io.IOException: Cannot run program
"F:\code\asistenciaBT\platforms\android\CordovaLib${aapt}" 
(in directory   "F:\code\asistenciaBT\platforms\android\CordovaLib"): CreateProcess error=2, 
El sistema no puede encontrar el archivo especificado

意思是,据我所知,ant 找不到 aapt 文件。 Ant 已安装:

ant -version
Apache Ant(TM) version 1.9.4 compiled on April 29 2014

ANDROID_HOMEPATH 也正确设置。我以前让cordova在这个系统上工作,现在它拒绝了。

cordova应该在项目目录中寻找appt吗?它不应该在 ANDROID_HOME/build_tools 上查看吗?

一些进一步的细节,以备不时之需:

npm -v
2.7.4

node -v
v0.12.2

cordova -v
5.1.1

os: windows 8.1 pro 64 bits

项目是从 github 克隆而来的,因此它 可能 某处存在一些继承的不兼容性。

编辑:

刚刚在一个新项目上测试 'cordova build',它失败并出现同样的错误。

cordova build 正在使用的 Android SDK 24.3 中的 ant 命令似乎已损坏。我降级到以前的版本 (24.2.0),ant 现在可以正常工作了。

您可以从以下位置下载以前的SDK: http://dl-ssl.google.com/android/repository/tools_r24.2-windows.zip

编辑:有更好的解决方案,请参阅下面的 kartikeya 的回答:

此外,如果您不使用 cordova,而是依靠 ant 来构建您的 android 项目,只需转到 gradle。

SDK 损坏...降级到以前的版本! 即,ant 版本 1.9.4 到 Ant 1.9.5 或降级 android skd tools

ant build 看起来肯定坏了。即使使用较旧的 SDK 对我来说仍然失败。我有 Cordova 4.2。我的解决方案是切换到 gradle 构建,它现在是 cordova 5 中的默认构建。(所以我猜你更新到 Cordova 5 但没有更新 android 项目)

$ npm install -g cordova

项目需要更新才能使用 gradle build

$ cordova platform update android

建筑现在应该使用 gradle

$ cordova build android

恢复到 24.3.1 即可解决。
osx: http://dl.google.com/android/android-sdk_r24.3.1-macosx.zip

这里有更多关于这个问题的信息:https://code.google.com/p/android/issues/detail?id=176488

将 Android SDK Tools 升级到 24.3.3 解决了问题。

无需降级或升级您的 SDK。按照这个步骤。 转到 .../sdk/tools/ant/build.xml 并在那里找到:

    <!-- find location of build tools -->
    <getbuildtools name="android.build.tools.dir" verbose="${verbose}" />

在下面添加:

    <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}" />

您需要使用以下命令:

 cordova platform update android@5.0.0