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

时间:2015-06-12 14:04:54

标签: android cordova ant

命令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_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',它失败并出现同样的错误。

7 个答案:

答案 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)

答案 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'