我有以下代码......
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文件。有谁知道怎么做?
答案 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