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

Где может быть проблема?
Постскриптум Я использую C ++ 14, если это важно.

ОБНОВЛЕНО
Я создал хранилище с моим проектом: https://bitbucket.org/ghostman2013/davinci_test

1

Решение

В вашем проекте app/build.gradle у тебя есть minSdkVersion установить на 21.

Родные API камеры были добавлены на уровне API 24.

Так что вы можете а) увеличить свой minSdkVersion до 24 или выше, или B) Не использовать собственные API-интерфейсы камеры в вашей библиотеке.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]