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

Android NDK: Missing LOCAL_MODULE before including BUILD_SHARED_LIBRARY

本文关键字:MODULE LOCAL LIBRARY SHARED NDK 包含 BUILD Android      更新时间:2023-10-16

我正在尝试在Eclipse/ADT中设置一个测试NDK项目。

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

<>前c: Workspace Test1 jni Android.mkc: 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-buildc:/android-ndk-r10d/构建/核心/build-shared-library。mk:23: *** Android NDK:在c:/Workspace/Test1//jni/Android中包含BUILD_SHARED_LIBRARY之前缺少LOCAL_MODULE。可。停止。之前

但我确实有一个LOCAL_MODULE    := ndkfoo条款在Android.mk,所以我不明白为什么我得到这个错误!

张贴这个,以防其他一些可怜的灵魂试图直接从该教程复制/粘贴- LOCAL_MODULE := ndkfoo行上的空格有问题。

我认为它们不是适当的空格,而是一些奇怪的Unicode字符,这与ndk-build混淆,因为我用十六进制编辑器查看它们,它们是0xC2 0xA0 0xC2 0xA0 0xC2 0xA0而不是0x20 0x20 0x20 0x20(这是正常的空格)。

不幸的是,任何从他们的教程中复制的人都会有这个错误。

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

Edit:显然这些是非换行空格。我不知道这是不是真的,但我认为ndk-build没有将它们识别为空白,所以它们成为变量名称的一部分,所以我定义了一个名为"LOCAL_MODULE "的变量,而不是"LOCAL_MODULE",这就是为什么它抱怨变量未定义的原因。

相关文章: