QRCodeReaderView 库使我的 android 应用程序崩溃

Posted

技术标签:

【中文标题】QRCodeReaderView 库使我的 android 应用程序崩溃【英文标题】:QRCodeReaderView library crashing my android application 【发布时间】:2016-11-20 16:17:53 【问题描述】:

更新到 QRCodeReaderView 最新版本后,我的应用程序崩溃仍未停止,出现不同的问题。 致命异常:java.lang.RuntimeException:无法连接到相机服务 在 android.hardware.Camera.(Camera.java:565) 在 android.hardware.Camera.open(Camera.java:372) 在 com.google.zxing.client.android.camera.open.OpenCameraInterface.open(OpenCameraInterface.java:76) 在 com.google.zxing.client.android.camera.CameraManager.openDriver(CameraManager.java:96) 在 com.dlazaro66.qrcodereaderview.QRCodeReaderView.surfaceCreated(QRCodeReaderView.java:183) 在 android.view.SurfaceView.updateWindow(SurfaceView.java:579) 在 android.view.SurfaceView$3.onPreDraw(SurfaceView.java:176) 在 android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1956) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5786) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) 在 android.view.Choreographer.doCallbacks(Choreographer.java:580) 在 android.view.Choreographer.doFrame(Choreographer.java:550) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:135) 在 android.app.ActivityThread.main(ActivityThread.java:5296) 在 java.lang.reflect.Method.invoke(Method.java) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

【问题讨论】:

【参考方案1】:

我是这个库的作者,我刚刚发布了一个新的 2.0,有几个改进,尝试更新到最新版本,看看问题是否得到解决。

请在此处查看:https://github.com/dlazaro66/QRCodeReaderView,如果不起作用,请在此处打开问题。

【讨论】:

【参考方案2】:

检查您对 Manifest 文件的权限。 如果您在 android 6.0+ 上启动应用程序,则应使用如下所示的权限请求;

 // Here, thisActivity is the current activity
    if (ContextCompat.checkSelfPermission(thisActivity,
                     Manifest.permission.CAMERA)
            != PackageManager.PERMISSION_GRANTED) 

        // Should we show an explanation?
        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,
                    MY_PERMISSIONS_REQUEST_CAMERA);

            // MY_PERMISSIONS_REQUEST_CAMERA is an
            // app-defined int constant. The callback method gets the
            // result of the request.
        
    

【讨论】:

以上是关于QRCodeReaderView 库使我的 android 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

获取 UITextView 的内容高度

AppBarLayout 与 FrameLayout 容器作为滚动内容不起作用

SNMP 扩展使我的 php 5.6.7 和 5.6.10 (windows 8) 崩溃

什么 .NET 的 SNMP 库使陷阱、设置或变得简单? [关闭]

使用标准 php 库使多个 memcache 键无效的最佳方法?

如何在表面视图上绘图?