Error: ENOENT: no such file or directory when running Ionic Cordova Platform Add Android

21.9k Views Asked by At

I just cant figure out how to solve this problem. I've tried many solutions but nothing works for my case. So i put my project in xampp\htdocs with folder name exam-ionic.

Then when i tried to add platform android the error

Error: ENOENT: no such file or directory, 
 open 'c:\xampp\htdocs\exam-ionic\android\package.json'] {
 errno: -4058,
 code: 'ENOENT',
 syscall: 'open',
 path: 'c:/xampp/htdocs/exam-ionic/android/package.json

This is when i run ionic cordova platform add android --verbose

ionic:utils-process onBeforeExit handler: 'process.exit' received +0ms
ionic:utils-process onBeforeExit handler: running 1 functions +2ms
ionic:utils-process error while killing process tree for 6724: Error: Command 
failed: taskkill /pid 
6724 /T /F
ionic:utils-process ERROR: The process "6724" not found.
ionic:utils-process
ionic:utils-process     at ChildProcess.exithandler (child_process.js:308:12)
ionic:utils-process     at ChildProcess.emit (events.js:315:20)
ionic:utils-process     at maybeClose (internal/child_process.js:1048:16)
ionic:utils-process     at Process.ChildProcess._handle.onexit 
(internal/child_process.js:288:5) {
ionic:utils-process   killed: false,
ionic:utils-process   code: 128,
ionic:utils-process   signal: null,
ionic:utils-process   cmd: 'taskkill /pid 6724 /T /F'
ionic:utils-process } +916ms
ionic:utils-process onBeforeExit handler: error from function: Error: Command 
failed: taskkill /pid 
6724 /T /F
ionic:utils-process ERROR: The process "6724" not found.
ionic:utils-process
ionic:utils-process     at ChildProcess.exithandler (child_process.js:308:12)
ionic:utils-process     at ChildProcess.emit (events.js:315:20)
ionic:utils-process     at maybeClose (internal/child_process.js:1048:16)
ionic:utils-process     at Process.ChildProcess._handle.onexit 
(internal/child_process.js:288:5) {
ionic:utils-process   killed: false,
ionic:utils-process   code: 128,
ionic:utils-process   signal: null,
ionic:utils-process   cmd: 'taskkill /pid 6724 /T /F'
ionic:utils-process } +3ms
ionic:utils-process processExit: exiting (exit code: 1) +5ms

This is my ionic info

Ionic:

Ionic CLI                     : 5.4.16 
(C:\Users\User\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework               : @ionic/angular 5.6.0
@angular-devkit/build-angular : 0.1101.4
@angular-devkit/schematics    : 11.1.4
@angular/cli                  : 11.1.4
@ionic/angular-toolkit        : 3.1.0

Capacitor:

Capacitor CLI   : 2.4.7
@capacitor/core : 2.4.7

Cordova:

Cordova CLI       : 10.0.0
Cordova Platforms : none
Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin- 
ionic-webview 4.2.1, (and 9 other plugins)

Utility:

cordova-res : 0.15.3
native-run  : 1.3.0

System:

Android SDK Tools : 26.1.1 (C:\Users\User\AppData\Local\Android\Sdk)
NodeJS            : v14.16.1 (C:\Program Files\nodejs\node.exe)
npm               : 7.9.0
OS                : Windows 10

And this is the package.json

{
  "name": "exam-ionic",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/common": "~11.2.0",
    "@angular/core": "~11.2.0",
    "@angular/forms": "~11.2.0",
    "@angular/platform-browser": "~11.2.0",
    "@angular/platform-browser-dynamic": "~11.2.0",
    "@angular/router": "~11.2.0",
    "@capacitor/android": "^2.4.7",
    "@capacitor/core": "2.4.7",
    "@ionic-native/core": "^5.32.0",
    "@ionic-native/onesignal": "^5.32.0",
    "@ionic-native/wonderpush": "^5.32.0",
    "@ionic/angular": "^5.5.2",
    "@ionic/storage": "^2.3.1",
    "cordova-plugin-androidx": "^3.0.0",
    "cordova-plugin-androidx-adapter": "^1.1.3",
    "cordova-sqlite-storage": "^5.1.0",
    "ionic-context-menu": "^5.0.0",
    "onesignal-cordova-plugin": "^2.11.3",
    "rxjs": "~6.6.0",
    "tslib": "^2.0.0",
    "wonderpush-cordova-sdk": "^3.0.3",
    "wonderpush-cordova-sdk-fcm": "^1.0.1",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.1101.4",
    "@angular/cli": "~11.1.4",
    "@angular/compiler": "~11.2.0",
    "@angular/compiler-cli": "~11.2.0",
    "@angular/language-service": "~11.2.0",
    "@capacitor/cli": "2.4.7",
    "@ionic/angular-toolkit": "^3.1.0",
    "@ionic/lab": "3.2.10",
    "@types/jasmine": "~3.6.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^6.0.0",
    "cordova-plugin-device": "^2.0.2",
    "cordova-plugin-ionic-keyboard": "^2.2.0",
    "cordova-plugin-ionic-webview": "^4.2.1",
    "cordova-plugin-splashscreen": "^5.0.2",
    "cordova-plugin-statusbar": "^2.4.2",
    "cordova-plugin-whitelist": "^1.3.3",
    "jasmine-core": "~3.6.0",
    "jasmine-spec-reporter": "~5.0.0",
    "karma": "~5.2.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-coverage-istanbul-reporter": "~3.0.2",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "protractor": "~7.0.0",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "~4.0.2"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-sqlite-storage": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "onesignal-cordova-plugin": {},
      "wonderpush-cordova-sdk": {
        "CLIENT_ID": "a312c22bafed82635f3167cc71a7437a9b840c44",
        "CLIENT_SECRET": "e499dc98a572d63752da6b73494ff8bf3bc99cf04a64bfc5451fbdce52854547"
      },
      "wonderpush-cordova-sdk-fcm": {
        "CLIENT_ID": "a312c22bafed82635f3167cc71a7437a9b840c44",
        "CLIENT_SECRET": "e499dc98a572d63752da6b73494ff8bf3bc99cf04a64bfc5451fbdce52854547",
        "SENDER_ID": "default"
      },
      "cordova-plugin-androidx": {},
      "cordova-plugin-androidx-adapter": {}
    },
    "platforms": []
  }
}

I've tried reinstall the npm, reinstall the cordova, updated the ionic CLI, deleted node_module folder + package.lock.json then npm install, but nothing does work. Please help meeee

5

There are 5 best solutions below

0
On BEST ANSWER

I was running with the same error and today I found out the solution. In the past, I tried a capacitor plugin, but my project is cordova, so I removed it from my project. But I think that some files were not properly deleted and when I ran ionic repair, the problem started. So, to repair this I deleted the ANDROID folder at project root, any files related to Capacitor at root, edited the package.json and removed everything related with Capacitor and everything works again.

Solution

  1. Delete the android folder at project root
  2. Edit the package.json and remove everything related with Capacitor
0
On

In my case i had android folder in my root directory which i had copied from the platforms folder. so when i renamed it from android to android-out and ran ionic cordova platfrom add android it worked

1
On

I got the same issue in android folder. I solved it like : - My ionic version is 5.4.0

Run the below commands:

  • ionic cordova platform remove android
  • ionic cordova platform add android
1
On

These answers have missed the removal of the 'ios' folder as well. This can be caused by attempting to install via Capacitor when you are still using Cordova.
(Generally when you jump between legacy and modern Ionic projects)

rm -rf platforms (to remove all platforms already installed)
rm -rf ios
ionic cordova prepare ios --release --prod (or android)

Then hit Y and it'll re-install ios in accordance with your package.json versioning.

example-of-following-installation

0
On

Below Solution works for me:

Package.json

"cordova-android": "^11.0.0",
"cordova-ios": "^6.2.0",
"@ionic/angular": "^7.0.1",
"@ionic/cordova-builders": "^9.0.0",

Perform the below steps in your root terminal:

  • Remove (android | ios ) platform - ionic cordova platform remove (android | ios)
  • Install Resouce package - npm i -g cordova-res && ionic cordova resources (android | ios) --force
  • Add platform again - ionic cordova platform build (android | ios)