我正在尝试使用Android NDK编译代码。我以前很好地使用了这段代码,但更改了其中的一件事,现在它将无法编译。显示的错误是:
"Compile++ thumb : filters <= filters.cpp
C:/Android/my-app//jni/filters.cpp:4:28: fatal error: android
/bitmap.h: No such file or directory
compilation terminated.
make: *** [C:/Android/my-app//obj/local/armeabi/objs/filters/
filters.o] Error 1
我的bitmap.h文件在库中定义为:
#include <android/bitmap.h>
我知道bitmap.h只有在目标skd构建为8或更高之后才会出现,而我的目标是10,最小值为8。有什么建议吗?这让我疯了,我以前也工作过!感谢您提供的任何帮助。
编辑:这是我的Android.mk文件也是
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := filters
LOCAL_SRC_FILES := filters.cpp
LOCAL_LDLIBS := -lm -llog -ljnigraphics
include $(BUILD_SHARED_LIBRARY)
开始工作了。我使用的是SDK工具修订版20和平台工具修订版12。为了编译它,我必须在命令行中指定APP_PLATFORM(显然这些修订默认为其他内容)。
刚刚运行:
ndk-build APP_PLATFORM=android-8
它建造了!
将APP_PLATFORM=android-8插入文件Application.mk
下面的答案也帮助了我。我尝试从Application.mk将APP_PLATFORM变量设置为android-10(正如我所期望的,这个选项也应该是APP_ABI所在的位置),但没有帮助。很不直观,但不管怎样,对吧。。?