【发布时间】:2014-04-04 09:49:10
【问题描述】:
我尝试加载 libcamera_client.so,但遇到了问题。根据我的 Android.mk,它应该使用相机库创建一个名为“include”的文件夹,对吧?但它不会创建文件夹,我看不到它。当我使用#include <camera/Camera.h> 和using namespace android; 时,我看到了:
fatal error: camera/Camera.h: No such file or directory
error: 'android' is not a namespace-name
有人可以帮帮我吗?
提前致谢。
我的 Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := camera_client-prebuild
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcamera_client.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.cpp
LOCAL_SHARED_LIBRARIES := camera_client-prebuild
LOCAL_LDLIBS := -llog -ldl -lm
include $(BUILD_SHARED_LIBRARY)
更新 1:
我正在尝试为特定的 Android 设备编写一个应用程序,该设备使用带有本机代码的相机。我从我的设备中获取了已编译的库(libcamera_client.so),我想加载相机的功能。
我尝试编写 LOCAL_LDLIBS := -llog -ldl -lm -lcamera_client 并将包含目录 (https://android.googlesource.com/platform/frameworks/av/+/android-4.1.2_r2.1/include) 复制到本地 jni 文件夹中。但是当我编译时,我看到jni/camera/Camera.h:20:26: fatal error: utils/Timers.h: No such file or directory,问题是camera.h 依赖于我没有在本地项目中复制的其他库。当我删除该行时:
#include <camera/Camera.h>
我可以看到:
arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lcamera_client
此外,我更改了我的代码:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := test
LOCAL_SRC_FILES := test.c
LOCAL_LDLIBS := -llog -ldl -lm
LOCAL_SHARED_LIBRARIES := libcamera_client
LOCAL_C_INCLUDE := frameworks/av/include
include $(BUILD_SHARED_LIBRARY)
但问题仍然存在,这取决于我在本地项目中没有的其他库
jni/camera/Camera.h:20:26: fatal error: utils/Timers.h: No such file or directory
【问题讨论】:
标签: android c++ android-ndk shared-libraries static-libraries