android opencv示例和教程运行良好,突然有一天我得到了所有这些“看来你的设备不支持相机(或它被锁定)。应用程序将关闭”请帮助如何修复< / p>
我重新安装了opencv并再次导入并制作了新的模拟器,但问题仍然存在
答案 0 :(得分:32)
转到您的设备设置 - &gt;应用 - &gt;您的应用 - &gt;权限 - &gt;打开相机许可..
为我工作..
答案 1 :(得分:19)
检查AndroidManifest.xml中的相机权限。
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.camera.front"/>
<uses-feature android:name="android.hardware.camera.front.autofocus"/>
它为我工作..
答案 2 :(得分:10)
来自Android Docs:
从Android 6.0(API级别23)开始,用户授予权限 应用程序运行时的应用程序,而非安装应用程序时的应用程序。
这意味着在Android 23或更高版本上,除了清单之外,您还需要在运行时请求权限。在这种情况下,摄像头访问。
为此,您可以使用以下代码:
// First check android version
if (MyVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
//Check if permission is already granted
//thisActivity is your activity. (e.g.: MainActivity.this)
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
// Give first an explanation, if needed.
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.CAMERA)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.CAMERA},
1);
}
}
}
您还可以按照docs。
中的说明处理请求响应希望它有所帮助!
答案 3 :(得分:2)
刚出现这个问题,我通过杀死使用相机的任何其他应用程序解决了这个问题。我之前的教程仍然在后台运行。
答案 4 :(得分:0)
样本应该有效,因为他们使用的是JavaCamera。当我尝试使用Native语言时,我遇到了这个问题。这似乎是原生的一个不适用于错误的手机。见this。
我必须在某些设备中添加,openCV原生相机根本不起作用,bug 2359。
答案 5 :(得分:0)
就我而言,问题是
我的应用在另一项活动中使用Android Camera
并且另一项活动 在被销毁(锁定)后未释放Camera
在释放另一个活动上的Camera
之后,该对话框将不再显示。
因此通常可以解决此问题