编译ndk_helper遇到的问题

ndk_helper是Android ndk自带的一个例子,编译出来是静态库,它又依赖cpufeatures和android_native_app_glue这两个静态库,所以需要先编译。在命令行下编译ndk,一般是进到工程所在的目录,敲ndk-build即可,前提要配置好ndk-build所在的路径到path里面去。由于工程目录下没有Application.mk,所以还要自己创建一个,大致内容如下:

APP_ABI := armeabi-v7a
APP_STL := c++_static
APP_PLATFORM := android-16

但是敲ndk-build出现错误:

Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.

这是因为当前的目录名称不是jni,你可以改成jni就没有这个问题了,生成的目标在jni同级的目录obj和libs下面。

没关系,不改也行。参考https://blog.csdn.net/sweettool/article/details/76222992,不过输入要麻烦一点:

ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRIPT=Android.mk

还会遇到找不到cpufeatures和android_native_app_glue的问题,这是因为Android.mk里有下面两行:

#$(call import-module,android/native_app_glue)
#$(call import-module,android/cpufeatures)

你需要做的是把这两个库编译的obj目录复制一份到当前目录,这样就能找到了。以为问题没有了,结果又提示找不到android_native_app_glue.h文件,还是把native_app_glue工程下的这个头文件拷贝到当前目录。这下就能编译成功,生成的obj和libs也在当前目录。

点赞