在构建Cordova Android应用程序时,构建can';我找不到艾德尔
我使用cordova 3.0的phonegap/cordova应用程序运行得很好。然后,出于不相关的原因(更准确地说是钛合金应用程序),我将我的Android SDK更新为4.3,突然构建失败,出现以下错误:在构建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.
...
-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更新项目”的确切含义是什么?