Android因权限问题而终止Qt应用程序

Android因权限问题而终止Qt应用程序,android,c++,opencv,qt5,Android,C++,Opencv,Qt5,萨姆5分钟前 正在尝试使用Qt5.12.3和opencv4.1.2(来自的android预构建版本)构建应用程序 手机:索尼xperia XA1 Ultra Qt:5.12.3 NDK:r19c 最低目标:24 最高目标:28 Android库链接到:libcamera2ndk.so和libmediandk.so,我链接到api 28的libs,而不是24(Android-28\arch arm\usr\lib) 权限: 拱门:armeabi-v7a 因为我需要实时处理相机的帧,所以我使用N

萨姆5分钟前

正在尝试使用Qt5.12.3和opencv4.1.2(来自的android预构建版本)构建应用程序

  • 手机:索尼xperia XA1 Ultra
  • Qt:5.12.3
  • NDK:r19c
  • 最低目标:24
  • 最高目标:28
  • Android库链接到:libcamera2ndk.so和libmediandk.so,我链接到api 28的libs,而不是24(Android-28\arch arm\usr\lib)
  • 权限:
  • 拱门:armeabi-v7a
因为我需要实时处理相机的帧,所以我使用NdkCameraManager来捕获相机的屏幕,但这会导致权限问题

错误消息:

W RenderThread: type=1400 audit(0.0:353504): avc: denied { read } for name="perf_ioctl" dev="proc" ino=4026533700 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0
编辑:我添加到项目中的额外so文件

contains(ANDROID_TARGET_ARCH, armeabi-v7a) {
    ANDROID_EXTRA_LIBS = \
        C:/Users/yyyy/programs/Qt/android_camera/../../../3rdLibs/Android/android-ndk-r19c-windows-x86_64/android-ndk-r19c/platforms/android-28/arch-arm/usr/lib/libcamera2ndk.so \
        C:/Users/yyyy/programs/Qt/android_camera/../../../3rdLibs/Android/android-ndk-r19c-windows-x86_64/android-ndk-r19c/platforms/android-28/arch-arm/usr/lib/libmediandk.so \
        C:/Users/yyyy/programs/Qt/android_camera/../../../3rdLibs/opencv/opencv_4.1.2-android-sdk/sdk/native/libs/armeabi-v7a/libopencv_java4.so
}

可能我遗漏了一些so文件?

您需要请求用户在运行时授予对相机的访问权限。 所以,使用from模块, 在首次访问相机之前运行此代码

   auto  result = QtAndroid::checkPermission(QString("android.permission.CAMERA"));
    if(result == QtAndroid::PermissionResult::Denied){
        QtAndroid::PermissionResultMap resultHash = QtAndroid::requestPermissionsSync(QStringList({"android.permission.CAMERA"}));
        if(resultHash["android.permission.CAMERA"] == QtAndroid::PermissionResult::Denied)
            // do whatever need if denied
         else
            // do whatever need if granted
    }

谢谢,我手动启用了相机权限,但它仍然崩溃。确切地说,在我试图打开相机之前,应用程序崩溃了,我想这可能是因为我错过了一些。因此,请看一看,我认为问题出在其他地方。如果你是正确的,问题是ACameraManager_getCameraIdList使应用程序崩溃,将打开一篇新的帖子询问原因,因为它们是不同的问题。感谢内容和信息不畅,应用程序崩溃是因为另一个原因