cordovaionic-frameworkcordova-plugins

Error “cordova\version is not recognized as an internal or external command, operable program or batch file”


When i do command ionic cordova prepare android i receive this error:

cordova\version"' is not recognized as an internal or external command, operable program or batch file.

    at ChildProcess.exithandler (node:child_process:397:12)
    at ChildProcess.emit (node:events:390:28)
    at maybeClose (node:internal/child_process:1064:16)
    at Socket.<anonymous> (node:internal/child_process:450:11)
    at Socket.emit (node:events:390:28)
    at Pipe.<anonymous> (node:net:687:12) {
  killed: false,
  code: 1,
  signal: null,
  cmd: '"C:\\Programacao\\appMalote216\\platforms\\android\\cordova\\version"'
}
[ERROR] An error occurred while running subprocess cordova.

I had this issue when trying to meet Google Play's new API level targeting policy. When I create the android@9 platform I can run the command normally and even generate a signed apk, when I add the android@10 platform when I give the prepare command I get this error.

Configuration of development environment:

Ionic:

   Ionic CLI                     : 6.18.1 (C:\Users\micro-85\AppData\Roaming\npm\node_modules\@ionic\cli)
   Ionic Framework               : @ionic/angular 5.9.3
   @angular-devkit/build-angular : 0.1000.8
   @angular-devkit/schematics    : 10.0.8
   @angular/cli                  : 10.0.8
   @ionic/angular-toolkit        : 2.3.3

Cordova:

   Cordova CLI       : 11.0.0
   Cordova Platforms : android 10.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 20 other plugins)

Utility:

   cordova-res : 0.15.4
   native-run  : 1.5.0

System:

   Android SDK Tools : 26.1.1 (C:\Users\micro-85\AppData\Local\Android\Sdk)
   NodeJS            : v16.13.2 (C:\Program Files\nodejs\node.exe)
   npm               : 8.4.0
   OS                : Windows 10

Node:v16.13.2
NPM: 8.4.0
Gradle: 7.3.3

Similar issue:https://github.com/OneSignal/OneSignal-Cordova-SDK/issues/725


Solution

  • I had the same issue on Windows. The problem is that Windows CMD does not recognise file platforms/android/cordova/version as a command even if it exists. (as it's a bash script).

    1. Solution 1

    You can fix it by creating a .bat file that will run node script version.

    For example create .bat platforms/android/cordova/version.bat with the following content:

    node %~dpnx0
    
    1. Solution 2: if you have bash installed and have this error when you run the script with npm, you can configure npm to use git bash instead of Windows CMD.

      npm config set script-shell ""

    For example

    npm config set script-shell "C:\\Program Files\\Git\\usr\\bin\\bash.exe"