2

我对 Android 比较陌生,使用 ndk-build 命令时遇到问题。我在 Windows 7 64 位下使用 NDK r9d。

当我运行创建我的 Android 项目(makefile 等)的构建系统,然后创建一个运行 ndk-build.cmd 的进程(我检查它是否在 Android 项目中调用)时,我收到错误:

make.exe: *** create_child_process: DuplicateHandle(In) 失败 (e=6)

但是,当我在由我的构建系统(或任何 Android 项目)创建的同一个 Android 项目中的 Windows 命令控制台中“手动”运行 ndk-build.cmd 时,一切正常。

我确实在这里找到了一些相关的问题:

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在我“手动”使用它时工作正常,要么它说它与stdin处理有关,我不认为就是这里的问题。加上我发现的所有答案都与类似的错误有关,但并不完全相同:

process_easy: DuplicateHandle(In) 失败 (e=6)

也许有人知道我的错误信息的含义。我不认为这是特定于 Android ndk-build 但也许。

感谢您的阅读(对于任何英语错误,我深表歉意,我是法国人,英语不流利)

4

1 回答 1

1

最后,我在这里找到了解决问题的方法:

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

我不确定问题是什么,但根据此链接,它与 make 环境和句柄有关。

解决方案:我没有直接使用 createProcess 函数(来自 Windows)来调用 ndk-build.cmd,而是创建了一个批处理文件,其中包含:

启动 ndk-build.cmd

我通过 createProcess 函数调用了这个批处理(.bat)。

我让您查看链接以获取更多详细信息。

于 2014-05-27T14:28:56.490 回答