命令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
据我所知,蚂蚁无法找到aapt文件。安装了Ant:
ant -version
Apache Ant(TM) version 1.9.4 compiled on April 29 2014
ANDROID_HOME
和PATH
也已正确设置。我之前已经让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',它失败并出现同样的错误。
答案 0 :(得分:13)
在{4}}正在使用的Android SDK 24.3中,蚂蚁命令似乎已被破坏。我降级到之前的版本(24.2.0),蚂蚁现在工作正常。
您可以从以下位置下载以前的SDK: http://dl-ssl.google.com/android/repository/tools_r24.2-windows.zip
编辑:有更好的解决方案,请参阅下面的kartikeya答案:https://stackoverflow.com/a/31603358/1453578
另外,如果你没有使用cordova但是依靠ant来构建你的android项目,那就转移到gradle了。
答案 1 :(得分: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}" />
答案 2 :(得分:2)
SDK已损坏...降级到以前的版本! 即,ant版本1.9.4 TO Ant 1.9.5或降级android skd工具
答案 3 :(得分:2)
ant build看起来绝对破碎。即使使用较旧的SDK仍然失败了。我有Cordova 4.2。我的解决方案是切换到gradle build,现在是cordova 5的默认设置。(所以我猜你更新到Cordova 5但没有更新android项目)
$ npm install -g cordova
需要更新项目以使用gradle构建
$ cordova platform update android
建筑现在应该使用gradle
$ cordova build android
答案 4 :(得分:2)
将Android SDK工具升级到24.3.3解决了这个问题。
答案 5 :(得分:0)
回到 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
答案 6 :(得分:0)
您需要使用以下命令:
Function FixRxClaimReportAddFirstLastNameColumn {
Param ($csvFile)
Write-Host "Adding columns 'First Name' and 'Last Name' to $csvFile"
Import-Csv $csvFile |
Select-Object *, @{n='First Name'; e={if ($_.Description) {
$columnFirstNameValue = $($_.Description -replace '\s+', ' ').split(" ")[0]
if ($columnFirstNameValue -notlike "*,*" -and $columnFirstNameValue -notmatch '\?' -and $columnFirstNameValue -notlike "*.*" -and $columnFirstNameValue -notlike "*-*") {
$columnFirstNameValue.Trim()
} else {
$columnFirstNameValue2 = $($_.Description -replace '\s+', ' ') -split {$_ -eq "-" -or $_ -eq "- " -or $_ -eq " -" -or $_ -eq " - " -or $_ -eq "," -or $_ -eq ", " -or $_ -eq " ," -or $_ -eq " , " -or $_ -eq "." -or $_ -eq ". " -or $_ -eq " ." -or $_ -eq " . " -or $_ -eq "?" -or $_ -eq "? " -or $_ -eq " ?" -or $_ -eq " ? "}
$columnFirstNameValue2[0].Trim()
}
}}}, @{n='Last Name'; e={if ($_.Description) {
$columnLastNameValue = $($_.Description -replace '\s+', ' ').split(" ")[1]
if ($columnLastNameValue -notlike "*,*" -and $columnLastNameValue -notmatch '\?' -and $columnLastNameValue -notlike "*.*" -and $columnLastNameValue -notlike "*-*") {
$columnLastNameValue.Trim()
} else {
$columnLastNameValue2 = $($_.Description -replace '\s+', ' ') -split {$_ -eq "-" -or $_ -eq "- " -or $_ -eq " -" -or $_ -eq " - " -or $_ -eq "," -or $_ -eq ", " -or $_ -eq " ," -or $_ -eq " , " -or $_ -eq "." -or $_ -eq ". " -or $_ -eq " ." -or $_ -eq " . " -or $_ -eq "?" -or $_ -eq "? " -or $_ -eq " ?" -or $_ -eq " ? "}
$columnLastNameValue2[1].Trim()
}
}}} | Export-Csv "$csvFile-Results.csv" -NoTypeInformation -Force
Write-Host "Complete."
Write-Host ""
}
FixRxClaimReportAddFirstLastNameColumn 'C:\Scripts\Tests\Test1.csv'