在构建Cordova Android应用程序时,构建can';我找不到艾德尔

在构建Cordova Android应用程序时,构建can';我找不到艾德尔,android,xml,cordova,build,Android,Xml,Cordova,Build,我使用cordova 3.0的phonegap/cordova应用程序运行得很好。然后,出于不相关的原因(更准确地说是钛合金应用程序),我将我的Android SDK更新为4.3,突然构建失败,出现以下错误: ... -code-gen: [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Manifest merger disabled. Using project manifest only.

我使用cordova 3.0的phonegap/cordova应用程序运行得很好。然后,出于不相关的原因(更准确地说是钛合金应用程序),我将我的Android SDK更新为4.3,突然构建失败,出现以下错误:

...
-code-gen:
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] Found 1 AIDL files.
     [aidl] Compiling 1 AIDL files.

BUILD FAILED
/Applications/adt-bundle/sdk/tools/ant/build.xml:647: The following error occurred while executing this line:
/Applications/adt-bundle/sdk/tools/ant/build.xml:653: Execute failed: java.io.IOException: Cannot run program "/Applications/adt-bundle/sdk/platform-tools/aidl" (in directory "/Users/cool/Dropbox/Workspaces/Cordova3Plus/TrueBudgetFree/platforms/android"): error=2, No such file or directory
...
Caused by: java.io.IOException: error=2, No such file or directory
...
我检查了文件的位置,然后

//the aidl executable isn't actually in
Applications/adt-bundle/sdk/platform-tools/ 
//Instead, it is in a ser
Applications/adt-bundle/sdk/build-tools/[sdk version]/
有几个SDK版本(17.0.0到19.0.0和“Android-4.3”)的子文件夹。每个目录中都有aidl可执行文件

我尝试将../sdk/build tools文件夹添加到我的$PATH(Mac)中,但没有任何帮助

我假设构建器将版本名插入到路径字符串中,但我真的不知道,因为我不了解这些构建过程的内部工作原理。在某种程度上,我所能看到的就是路径被引用/编辑的位置

第647/653行的build.xml包含以下代码:

<echo level="info">Handling aidl files...</echo>
<aidl executable="${aidl}"
    framework="${project.target.framework.aidl}"
    libraryBinAidlFolderPathRefid="project.library.bin.aidl.folder.path"
    genFolder="${gen.absolute.dir}"
    aidlOutFolder="${out.aidl.absolute.dir}">
    <source path="${source.absolute.dir}"/>
</aidl>
处理aidl文件。。。
这意味着aidl文件每隔一段时间就会使用新的SDK移动一次

我尝试过恢复到Android SDK 4.2,但没有帮助


这里的原因是什么(更重要的是:解决方案)?

丑陋的回答:我刚刚将血腥的aidl可执行文件复制到build.xml期望的位置

在再次尝试构建之后,以下文件也被证明应该驻留在平台工具中,即使它们位于构建工具中

aapt dx

但是dx找不到dx.jar,所以您也必须复制lib/dx.jar

这导致了一个成功的构建。这是可怕的黑客虽然


我还想到,我可以尝试将对/platformtools文件夹(build.xml内部)的引用替换为对/buildtools的引用。我还没有试过,而且它也同样古怪。我意识到时间已经过去了,但我也发生了同样的事情(虽然没有使用Cordova,但问题是相同的)

事实证明,Android SDK管理器中的构建工具v19(
19.0.0
)并没有真正安装,只是之后的小版本(
19.0.1-19.0.3
),因此
19.0.0
看起来像是某种部分安装,而不仅仅是缺失、奇怪。 从Android SDK管理器安装后,它再次开始工作。
我猜在我接受的某次更新中,为了支持19.0,我卸载了该版本。+

您是否尝试在该代码上运行android update项目?听起来这只是一些你可以清理的东西。我从来没有在命令行上看到过这一点,只有在Eclipse上。嗨,Joe,我尝试过更新Android SDK。“在此代码上运行android更新项目”的确切含义是什么?