android - 不能使用 typedef 枚举
问题描述
我有一个带有定义的头文件:
typedef enum acamera_metadata_enum_android_lens_facing {
// enumeration
} acamera_metadata_enum_android_lens_facing_t;
问题是当我试图将此枚举声明为我的类成员时,编译器找不到定义(找到标题)。
../../../../src/main/cpp/include/camera_manager.h:41:9: error: unknown type name 'acamera_metadata_enum_android_lens_facing_t'
acamera_metadata_enum_android_lens_facing_t facing;
这是我的班级标题:
#ifndef DAVINCI_CAMERA_MANAGER_H
#define DAVINCI_CAMERA_MANAGER_H
#include <map>
#include <string>
#include <camera/NdkCameraManager.h>
#include <camera/NdkCameraError.h>
#include <camera/NdkCameraDevice.h>
#include <camera/NdkCameraMetadataTags.h> // The enumeration is defined here
#include <media/NdkImageReader.h>
namespace DaVinci {
class CameraId;
class CameraManager {
struct ACameraManager *_manager;
std::map<std::string, CameraId> _cameras;
std::string _activeCameraId;
int32_t _cameraFacing;
int32_t _cameraOrientation;
bool _valid;
public:
CameraManager();
~CameraManager();
};
// helper classes to hold enumerated camera
class CameraId {
public:
struct ACameraDevice *device;
std::string id;
acamera_metadata_enum_android_lens_facing_t facing;
bool available; // free to use ( no other apps are using
bool owner; // we are the owner of the camera
explicit CameraId(const char *id);
explicit CameraId();
};
};
#endif //DAVINCI_CAMERA_MANAGER_H
问题可能出在哪里?
PS如果它很重要,我正在使用c ++ 14。
更新我用我的项目创建了一个存储库:https : //bitbucket.org/ghostman2013/davinci_test
解决方案
在您的项目中app/build.gradle
,您已minSdkVersion
设置为 21。
在 API 级别 24 中添加了本机相机 API 。
因此,您可以 A)将您的数量minSdkVersion
增加到 24 或更高,或 B)不使用库中的本机相机 API。
推荐阅读
- c# - 创建一个登录表单项目的DLL可以吗?
- c - 我编写了一个 C 程序,它在编译时嵌入了自己的源代码,并在运行时显示它。这算不算奎因?
- android - 仅在特定片段上打开键盘时移动布局(WebView)
- r - magrittr 管道中的 WOE
- java - 错误:即使它是公共变量也找不到符号?
- typescript - 如何使一组装饰器在 Typescript 中易于重用
- python - Python套接字从CSV问题扫描多个IP
- python - 预测后如何生成准确的掩码
- powershell - Powershell:Export-Excel 不导出数据行,仅导出标题
- python - 多列文本文件到字典