2014-11-06 2 views
25

Cordova сборки андроида дает мне следующую ERRPhonegap/Cordova build android node_modules/q/q.js throw e;

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" 

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

$ набор | Grep "ANDROID \ | PATH"

ANDROID_HOME =/Users/ровер/Документы/Dev/Android/вст-расслоением-макинтош-x86_64-20140702/SDK/инструменты ANDROID_PLATFORM_TOOLS =/Users/ровер/Документы/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk/platform-tools ANDROID_SDK =/Пользователи/rover/Documents/Dev/Android/adt-bundle-mac-x86_64-20140702/sdk PATH =/Пользователи/ровер/Документы/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/bin

$ 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 -версия 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) 

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

ответ

9

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

+0

Я загрузил Java 6 для OSX в Йосемити, потому что Eclipse жаловался, что это нужно. Я постараюсь установить Java на это, но это странная ошибка, если это проблема. – mylord

+0

Да, вы правы, у меня была аналогичная ошибка с сообщением об ошибке «q.js: 126», но оказалось, что это очень общее место для возникновения ошибок (если я помню, он вызывает некоторую внешнюю программу, в этом я бы предположил). Возможно, я нашел решение в другом вопросе: Закройте Eclipse и запустите ant clean в папке проекта. http://stackoverflow.com/questions/23753320/build-error-referencing-build-xml-and-proguard-file-null-returned-1/23774435#23774435 – Marxama

+0

ant clean дает: Buildfile: build.xml не делает существовать! Единственный build.xml, который у меня есть в моем проекте, связан с плагином facebookconnect. Любые другие идеи? – mylord

1

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

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

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

+1

Я переместил этот файл и запустил: cordova build android. Такая же ошибка сохраняется. Кроме того, никакого другого debug.keystore не было создано. +1 за помощь в любом случае. Любые другие идеи? – mylord

20

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

cordova platform remove android 
cordova platform add android 

Перекомпилирован с «Cordova построить андроида», и он работал как шарм.

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

===== Обновление для Ионных ========

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

ionic platform remove android 
ionic platform add android 

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

+0

Спасибо! Да, у меня проблемы с установкой npm. Когда я пытаюсь обновить проект cordova, я получаю, например. shelljs отсутствует, и чтобы установить в принципе что-нибудь, npm жалуется на неудовлетворительные зависимости и т. д. ... но это еще одна ошибка для поиска: – mylord

+1

Если бы вы могли просто переустановить, она должна работать, я думаю. Я также повторно установил nodejs. – Anjum

+1

Я заметил еще одну вещь, после удаления и добавления платформы Android. Похоже, что имя файла Apk также изменилось. Раньше я использовал MyAppName-debug.apk. Теперь это CordovaApp-debug.apk. Эта информация была бы полезна, если вы используете пакетный файл DOS для автоматизации процесса. – Anjum

0

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

0

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

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

0

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

2

Я столкнулся с той же проблемой и решил ее устранить небуквенные символы в config.xml. Particulary для атрибута name:

<name>Temps d'espera</name> 

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

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

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

+0

Это была моя проблема, независимо от инструментов сборки, которые я установил. – Wayferer

1

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

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

, который был взят из StackOverflow нити Grunt watch error - Waiting...Fatal error: watch ENOSPC

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

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

дальше.

+0

Да, действительно. Такая же ошибка на Ubuntu 16.04! благодаря – Andrea