android - ndk 中的未知类型名称 'ACameraDevice'

标签 android opencv android-ndk opencv4android

我想用 NDK 在 android 中开发 opencv 程序,为此我尝试构建 this android studio中的示例项目,但是在制作项目时会出现这些错误:

Build command failed.
Error while executing process E:\SoftWare\Android\android-ndk-r19c\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\Users\127051\Documents\StudioProjects\StudioProjects\ImageProccessing\app\src\main\cpp\Android.mk NDK_APPLICATION_MK=C:\Users\127051\Documents\StudioProjects\StudioProjects\ImageProccessing\app\src\main\cpp\Application.mk APP_ABI=x86_64 NDK_ALL_ABIS=x86_64 NDK_DEBUG=1 APP_PLATFORM=android-21 NDK_OUT=C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT=C:\Users\127051\Documents\StudioProjects\StudioProjects\ImageProccessing\app\build\intermediates\ndkBuild\debug\lib APP_CPPFLAGS+=-std=c++14 C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libopencv_ndk.so}

[x86_64] Compile++      : opencv_ndk <= native-lib.cpp

In file included from C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/native-lib.cpp:4:
In file included from C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/CV_Main.h:15:
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:15:55: error: unknown type name 'ACameraDevice'
static void CameraDeviceOnDisconnected(void* context, ACameraDevice* device) {
                                                      ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:18:48: error: unknown type name 'ACameraDevice'
static void CameraDeviceOnError(void* context, ACameraDevice* device,
                                               ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:25:35: error: unknown type name 'ACameraCaptureSession'
                                  ACameraCaptureSession* session) {
                                  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:29:36: error: unknown type name 'ACameraCaptureSession'
                                   ACameraCaptureSession* session) {
                                   ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:52:3: error: unknown type name 'ACameraDevice'
  ACameraDevice* m_camera_device;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:53:3: error: unknown type name 'ACaptureRequest'
  ACaptureRequest* m_capture_request;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:54:3: error: unknown type name 'ACameraOutputTarget'
  ACameraOutputTarget* m_camera_output_target;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:55:3: error: unknown type name 'ACaptureSessionOutput'
  ACaptureSessionOutput* m_session_output;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:56:3: error: unknown type name 'ACaptureSessionOutputContainer'
  ACaptureSessionOutputContainer* m_capture_session_output_container;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:57:3: error: unknown type name 'ACameraCaptureSession'
  ACameraCaptureSession* m_capture_session;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:59:3: error: unknown type name 'ACameraDevice_StateCallbacks'
  ACameraDevice_StateCallbacks m_device_state_callbacks;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:60:3: error: unknown type name 'ACameraCaptureSession_stateCallbacks'
  ACameraCaptureSession_stateCallbacks m_capture_session_state_callbacks;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:62:3: error: unknown type name 'ACameraManager'
  ACameraManager* m_camera_manager;
  ^
C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/src/main/cpp/Native_Camera.h:64:3: error: unknown type name 'ACameraIdList'
  ACameraIdList* m_camera_id_list = NULL;
  ^
14 errors generated.
make: *** [C:/Users/127051/Documents/StudioProjects/StudioProjects/ImageProccessing/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/opencv_ndk/native-lib.o] Error 1

环境详情:

NDK 版本:r19c

主机操作系统:Windows

IDE:Android Studio 3.3.2

SDK平台工具:28.0.2

SDK工具:25.2.5

最佳答案

要使用 native camera2 API,请设置您的 APP_PLATFORM 机器人 24 或更高。在 Android Studio 中,这对应于 minSdkVersion build.gradle脚本。

关于android - ndk 中的未知类型名称 'ACameraDevice',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317842/

相关文章:

Android TextView 使 http 和自定义方案 url 可点击

android - lineSpacingMultiplier 和 maxLines 削减最后一行,android textview

android - 是否可以在 Android 上使用 OpenCV 进行缩放和聚焦?

java - 如何从 "Credential storage"加载证书?

android - calcHist方法-无效的参数

Android 通知消息(不)从 Activity 切换

android - AlarmManager 启动服务时的唤醒锁

python - 获取许可证OpenCV项目时出错

python - 如何在python中删除图像的背景

android - 如何将命令行参数从 gradlew.bat 传递到 Android/NDK 上的 Clang