2014-11-14 2 views
0

Я пытаюсь добавить андроид платформу с помощью следующей командыИонные не может добавить Платформу Android

ionic platform add android 

Я преподносят следующий вывод:

Creating android project... 

module.js:340 
    throw err; 
     ^
    Error: Cannot find module 'which' 
     at Function.Module._resolveFilename (module.js:338:15) 
     at Function.Module._load (module.js:280:25) 
     at Module.require (module.js:364:17) 
     at require (module.js:380:17) 
     at Object.<anonymous> (/Users/user1/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/lib/check_reqs.js:27:13) 
     at Module._compile (module.js:456:26) 
     at Object.Module._extensions..js (module.js:474:10) 
     at Module.load (module.js:356:32) 
     at Function.Module._load (module.js:312:12) 
     at Module.require (module.js:364:17) 
    Error: /Users/user1/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/create: Command failed with exit code 8 
     at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23) 
     at ChildProcess.emit (events.js:98:17) 
     at maybeClose (child_process.js:756:16) 
     at Process.ChildProcess._handle.onexit (child_process.js:823:5) 

Я установил PATH в моем bash_rc файл как таковой:

export PATH=/Users/user1/android-sdk-macosx/platform-tools:/Users/user1/android-sdk-macosx/tools:$PATH 

Добавление платформы iOS было простым; проблем нет.

Я проверил свой Android SDK, и все, кажется, актуально. Я также попытался переустановить Кордову с последующим sudo npm -g uinstall cordovasudo npm -g install cordova

Я проверил, что npm, cordova и ionic были установлены по всему миру.

ответ

0

Проверить в каталоге

/Users/user1/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules/ 

Там должно быть три модуля в этом каталоге, which, shelljs и q. Они являются частью релиза cordova-android 3.6.4, поэтому трудно понять, почему его не хватало. Если which не существует, лучше удалить платформу Android и добавить его снова.

ionic platform rm android 

Обновление после вашего комментария.

Я не думаю, что переустановка платформы Android будет иметь значение. Это больше похоже на проблему узла, характерную для вашей среды. Сценарий check_reqs, который не работает, запускается от

/Users/user1/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/lib 

. Если изменить этот каталог затем запустить узел в интерактивном режиме вы можете запустить затем выполнить команду:

require('which')

Если это не удается запустить:

module.paths

, который будет распечатывать дорожки, которые используют узел чтобы попытаться найти какой модуль. Там должна быть запись для

/Users/user1/.cordova/lib/npm_cache/cordova-android/3.6.4/package/bin/node_modules 

который где which модуль.

+1

Похоже, что '' 'существует в' 3.6.4/package/bin/node_modules/'. Я собираюсь запустить команду «ionic platform rm android», но я боюсь, что я не смогу добавить платформу обратно, так как это моя проблема в первую очередь. – shehanp

+0

Добавлен еще один ответ выше. Это может дать вам некоторое представление о том, что не так. – oenpelli

0

столкнувшись с той же проблемой, обнаружил, что не было папки «which» и ее содержимого в android \ cordova \ node_modules. Как только я скопировал папку из .cordova \ lib \ npm_cache \ cordova-android \ 3.6.4 \ package \ bin \ node_modules \, которая Сборка прошла успешно

Смежные вопросы