Ошибка сборки Android ndk make.exe: *** create_child_process: DuplicateHandle(In) failed (e=6)

Я относительно новичок в Android, и у меня возникла проблема с использованием команды ndk-build. Я использую NDK r9d под Windows 7 64bit.

Когда я запускаю свою систему сборки, которая создает мой проект Android (файлы makefile и т. д.), а затем создает процесс, выполняющий ndk-build.cmd (я проверил, что это вызов в проекте Android), я получаю сообщение об ошибке:

make.exe: *** create_child_process: DuplicateHandle(In) не удалось (e=6)

Но когда я запускаю ndk-build.cmd «вручную» в командной консоли Windows в том же проекте Android, созданном моей системой сборки (или любым проектом Android), все работает.

Я нашел некоторые связанные вопросы, такие как здесь:

https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000-0000-000014825836

https://cygwin.com/ml/cygwin/2004-09/msg01506.html

Но все, что я нашел, говорит либо о том, что это проблема версии make, которой нет (я думаю), поскольку ndk-build отлично работает, когда я использую ее «вручную», либо говорит, что это связано с обработкой стандартного ввода, и снова я не думаю что проблема здесь. Кроме того, все ответы, которые я нашел, были связаны с похожей ошибкой, но не совсем такой же:

process_easy: ошибка DuplicateHandle(In) (e=6)

Может быть, кто-то знает смысл моего сообщения об ошибке. Я не думаю, что это относится к Android ndk-build, но может быть.

Спасибо за чтение (и извините за любые английские ошибки, я француз и не говорю по-английски)


person titorel    schedule 26.05.2014    source источник


Ответы (1)


Наконец, я нашел решение своей проблемы здесь:

http://www.zeusedit.com/zforum/viewtopic.php?t=174

Я не уверен, в чем проблема, но, судя по этой ссылке, она была связана с make-средой и дескрипторами.

Решение: вместо того, чтобы напрямую использовать функцию createProcess (из Windows) для вызова ndk-build.cmd, я создал пакетный файл, содержащий:

запустить ndk-build.cmd

И я вызвал этот пакет (.bat) через функцию createProcess.

Я позволю вам увидеть ссылку для более подробной информации.

person titorel    schedule 27.05.2014