Phonegap/Cordova build android node_modules/q/q.js throw e;

corova build android дает мне следующее err

node_modules/q/q.js:126 throw e; (*error details)

Этот вопрос задан раньше, но типичный ответ о PATH и ANDROID_HOME не сработал у меня.

Я поместил это в фрагмент кода, чтобы избежать проблем с отправкой SO

export HOME="/Users/rover"
export ANDROID_SDK="$HOME/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk"
export ANDROID_HOME="$ANDROID_SDK/tools"
export ANDROID_PLATFORM_TOOLS="$ANDROID_SDK/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$ANDROID_SDK/build-tools:$PATH"
export ANT_HOME="/usr/local/bin/ant"
#export PATH="$PATH:$ANT_HOME/bin"

Мои переменные среды:

$set | grep "ANDROID\| PATH"

ANDROID_HOME =/Users/ровер/Документы/Dev/Android/вст-расслоение-макинтош-x86_64-20140702/SDK/инструменты ANDROID_PLATFORM_TOOLS =/Users/ровер/Документы/Dev/Android/вст-расслоение-макинтош-x86_64-20140702/SDK/платформенные инструменты ANDROID_SDK =/Users/ровер/Документы/Dev/Android/вст-расслоение-макинтош-x86_64-20140702/SDK PATH =/Users/ровер/Документы/Dev/Android/вст-расслоение-макинтош-x86_64-20140702/SDK/инструменты:/Users/ровер/Документы/Dev/Android/вст-расслоение-макинтош-x86_64-20140702/SDK/платформенные инструменты:/Users/ровера/Документы/Dev/Android/вст-расслоением-макинтош-x86_64-20140702/SDK/сборки-инструменты:/USR/локальные/бен:/USR/бен:/бен:/USR/SBIN:/SBIN:/OPT/X11/бен

$ which ant
/usr/local/bin/ant
$ ls /usr/local/bin/ant
/usr/local/bin/ant

$ cordova --version
4.0.0

$ ant -v
Apache Ant(TM) version 1.9.4

Я нахожусь в Mac OSX 10.10 (Yosemite), у которого может возникнуть проблема с Java 8. Может ли это быть связано?

$java -version java-версия "1.8.0_05" Java (TM) SE Runtime Environment (сборка 1.8.0_05-b13) Java HotSpot (TM) 64-разрядная серверная VM (сборка 25.5-b02, смешанный режим)

$ ant --execdebug
exec "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/jre/bin/java" -classpath "/usr/local/Cellar/ant/1.9.4/libexec/lib/ant-launcher.jar" -Dant.home="/usr/local/Cellar/ant/1.9.4/libexec" -Dant.library.dir="/usr/local/Cellar/ant/1.9.4/libexec/lib" org.apache.tools.ant.launch.Launcher -cp ""

(*error details)

BUILD FAILED
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:653: The following error occurred while executing this line:
/Users/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/tools/ant/build.xml:698: null returned: 1

Total time: 1 second

/Library/WebServer/Documents/Booster/core_ionic_git/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error code 1 for command: ant with args: debug,-f,/Library/WebServer/Documents/Booster/core_ionic_git/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /Library/WebServer/Documents/Booster/core_ionic_git/platforms/android/cordova/build: 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)

Любые идеи по исправлению этого?

Ответ 1

Я заметил, что ваша переменная ANDROID_HOME может быть неправильно настроена - насколько я могу судить, она должна быть установлена ​​в корень вашей папки SDK (что у вас установлен ANDROID_SDK), попробуйте (и убедитесь, что вы все еще на вашем пути есть как $ANDROID_HOME/tools, так и $ANDROID_HOME/платформы-инструменты).

Ответ 2

Я постучал головой о стену часами и часами и в итоге придумал простое решение. Я зашел в каталог проекта и выпустил две команды:

cordova platform remove android
cordova platform add android

Перекомпилирован с "corova build android", и он работал как шарм.

Я думаю, что кордова хотела обновить некоторые файлы.

===== Обновление для Ionic ========

Если вы используете ионную структуру, то это команды для вашего спасения:

ionic platform remove android
ionic platform add android

Я заметил, что это обычно происходит, когда вы прерываете (Ctrl-C) процесс компиляции.

Ответ 3

Я запускаю ту же проблему и решаю ее, избегая букв без буквы в config.xml. Частично для атрибута name:

<name>Temps d'espera</name>

Я изменил его на:

<name>Temps d\'espera</name>

И тогда он работает отлично. Надеюсь, что это поможет.

Ответ 4

@mylord У меня была аналогичная ошибка, и это было связано с недействительным сертификатом отладки. В Linux Удалить ~/.android файл debug.keystore.

В следующий раз, когда вы построите, инструменты сборки будут восстанавливать новое хранилище ключей и отладочный ключ.

Это решило для меня. Надеюсь, это поможет.

Ответ 5

Я столкнулся с этой проблемой при запуске 'phonegap serve', но решение было совсем другим. Я заметил, что операция будет работать, когда я перезагружу свой компьютер. В случае, если кто-то еще столкнется с этой проблемой. Вот решение на Ubuntu 15

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

который был взят из потока stackoverflow Ошибка просмотра Grunt - Ожидание... Неустранимая ошибка: смотрите ENOSPC

В дополнение к ошибке плакатов у меня была ошибка

at exports._errnoException (util.js:856:11)
at FSWatcher.start (fs.js:1313:19)
at Object.fs.watch (fs.js:1341:11)

дальше вниз.

Ответ 6

Я встречаюсь с тем же сообщением об ошибке, но моя настройка ANDROID_HOME верна. Я обнаружил, что ошибка вызвана тем, что я открываю файл .apk в папке \platform\android\ ant -build. После закрытия 7zip, которые занимают файл .apk, прошло ant.

Ответ 7

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

После многих изменений, которые я сделал, я понял, что у нас не должно быть двух папок с одинаковыми именами: jquery и jquery!

Ответ 8

У меня была такая же проблема. Это было вызвано наличием приложения с тем же именем (и тем же именем домена обратного стиля в моем случае), установленным на устройстве Android, которое возникло из магазина Google Play (это был наш бета-релиз).