hello-jni NDK示例 - ndk-build失败

时间:2011-05-10 18:00:49

标签: android android-ndk

我正在按照http://developer.android.com/sdk/ndk/overview.html上的步骤来构建hello-jni示例,但是当我进入第2步运行时

cd $NDK-ROOT/samples/hello-jni
$NDK-ROOT/ndk-build

在Cygwin命令提示符下,我收到以下错误消息:

/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file
Android NDK: Host awk tool is outdated. Please define HOST_AWK to point to Gawk
or Nawk !

我的Windows机器上有Cygwin 1.7.9,Gnu Make 3.8.2和Gawk 3.1.8,以及Android NDK的r5b版本。 我还设置了HOST_AWK环境变量,它指向我的Gawk文件夹。

不幸的是,如果没有这一步,示例将无法成功运行(如果我运行hello-jni,我会立即收到UnsatisfiedLinkError异常)。

下面是我的机器上的init.mk文件的一部分(在NDK_ROOT / build / core中找到),它会产生这个错误:

# Location of all awk scripts we use
BUILD_AWK := $(NDK_ROOT)/build/awk

AWK_TEST := $(shell $(HOST_AWK) -f $(BUILD_AWK)/check-awk.awk)
$(call ndk_log,Host awk test returned: $(AWK_TEST))
ifneq ($(AWK_TEST),Pass)
$(call __ndk_info,Host awk tool is outdated. Please define HOST_AWK to point to Gawk or     Nawk !)
$(call __ndk_error,Aborting.)
endif

谢谢你的帮助

4 个答案:

答案 0 :(得分:0)

尝试更新您的awk工具。似乎是一个过时的版本(也许)。还要确保将NDK根定义到NDK源的位置,并确保awk工具位于NDK源的构建目录中。

  

NDK_ROOT

尝试将此环境变量设置为NDK根目录的位置。每当定义时(通常在顶部)

答案 1 :(得分:0)

而不是HOST_AWK=gawk.exe,只需执行HOST_AWK=gawk

答案 2 :(得分:0)

事实证明我的HOST_AWK路径中有一个撇号,导致了这个问题。

答案 3 :(得分:0)

参考 https://stackoverflow.com/q/8121153/411522

我的工作正常。要做的是:只需在ndk中重命名预建的awk