用于Camera Native Android的库

时间:2013-07-24 15:10:14

标签: c++ android-ndk

我有以下代码......

gl_game.cpp

#include <camera/Camera.h>
....
using namespace android;
LOGI("Number of cameras are... %d", Camera::getNumberOfCameras());

和Android.mk ......

LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../AOSP/frameworks/av/include $(LOCAL_PATH)/../../AOSP/frameworks/native/include $(LOCAL_PATH)/../../AOSP/system/core/include $(LOCAL_PATH)/../../AOSP/hardware/libhardware/include

当我尝试编译时,我看到链接器错误...

error: undefined reference to 'android::Camera::getNumberOfCameras()'

我假设这是因为我从未将包含Camera.cpp的.so添加到我的LOCAL_LDLIBS,但我找不到要添加到链接器的正确的.so文件。有谁知道怎么做?

1 个答案:

答案 0 :(得分:0)

这就是我所做的,我认为这里的问题是.so文件实现是特定于制造商的。因为我只是测试并且还没有做到那么远,我使用了一个有根的模拟器来获取模拟器设备本身的.so ...

adb pull /system/lib/libcamera_client.so ../project/jni/lib/

然后将以下内容添加到我的Android.mk ....

include $(CLEAR_VARS)
LOCAL_MODULE := libcam
LOCAL_SRC_FILES := lib/libcamera_client.so
include $(PREBUILT_SHARED_LIBRARY)
...
LOCAL_SHARED_LIBRARIES := libcam

现在我明白了......

  

I / libgl2jni(843):摄像机数量为... 0

我对模拟器的期望是什么......

同样的文件也适用于我的华硕平板电脑...

  

I / libgl2jni(8175):摄像机数量为...... 2