Android NDK:在包含 BUILD_SHARED_LIBRARY 之前缺少 LOCAL_MODULE

Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY

我正在尝试在 this tutorial 之后的 Eclipse/ADT 中设置一个测试 NDK 项目。

我创建了一个全新的 Android 项目 "Test1",我在其中添加了以下 2 个文件:

c:\Workspace\Test1\jni\Android.mk
c:\Workspace\Test1\jni\ndkfoo.c

这是在Android.mk:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c
include $(BUILD_SHARED_LIBRARY)

但是当我尝试编译它时,我得到这个错误:

c:\Workspace\Test1\jni>ndk-build
c:/android-ndk-r10d/build/core/build-shared-library.mk:23: *** Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY in c:/Workspace/Test1//jni/Android.mk    .  Stop.

但我在 Android.mk 中确实有一个 LOCAL_MODULE    := ndkfoo 子句,所以我不明白为什么会出现此错误!

张贴这个以防其他可怜的人试图 copy/paste 直接从那个教程 - LOCAL_MODULE := ndkfoo.

行的空格有问题

我认为它们不是正确的空格,而是一些奇怪的 Unicode 字符,它扰乱了 ndk-build,因为我用十六进制编辑器查看它们,它们是 0xC2 0xA0 0xC2 0xA0 0xC2 0xA0 而不是 0x20 0x20 0x20 0x20(这是普通空格)。

不幸的是,从他们的教程中复制的任何人都会遇到此错误。

如果你尝试从这里的问题中复制它应该没问题,我认为 SO 已经以某种方式将它们固定为正常空间,但在原始站点上它们是奇怪的 Unicode 空间,这将导致 ndk-build 失败.

编辑: 显然是 non-breaking spaces。我不知道这是不是真的,但我认为 ndk-build 没有将它们识别为空格,所以它们成为变量名称的一部分,所以我定义了一个名为 "LOCAL_MODULE " 的变量,而不是 [=15] =],这就是为什么它抱怨变量未定义。