我'当我的应用程序打开时出现问题,因为当应用程序打开时,问题是cameraource不是null或类似的东西,并且不能在所有手机上运行。
这些是错误:
10-15 00:35:17.164 11270-11270 / com.google.android.gms.samples.vision.face.facetracker E / AndroidRuntime:FATAL EXCEPTION:main java.lang.RuntimeException:无法连接到摄像头服务 在android.hardware.Camera.native_setup(本机方法) 在android.hardware.Camera。(Camera.java:423) 在android.hardware.Camera.open(Camera.java:384) 在com.google.android.gms.vision.CameraSource.zzchq(未知来源) 在com.google.android.gms.vision.CameraSource.start(未知来源) 在com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview.startIfReady(CameraSourcePreview.java:99) 在com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview.access $ 200(CameraSourcePreview.java:34) 在com.google.android.gms.samples.vision.face.facetracker.ui.camera.CameraSourcePreview $ SurfaceCallback.surfaceCreated(CameraSourcePreview.java:122) 在android.view.SurfaceView.updateWindow(SurfaceView.java:606) 在android.view.SurfaceView.access $ 000(SurfaceView.java:88) 在android.view.SurfaceView $ 3.onPreDraw(SurfaceView.java:183) 在android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:692) 在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2123) 在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1139) 在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4879) 在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:776) 在android.view.Choreographer.doCallbacks(Choreographer.java:579) 在android.view.Choreographer.doFrame(Choreographer.java:548) 在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:762) 在android.os.Handler.handleCallback(Handler.java:725) 在android.os.Handler.dispatchMessage(Handler.java:92) 在android.os.Looper.loop(Looper.java:153) 在android.app.ActivityThread.main(ActivityThread.java:5313) at java.lang.reflect.Method.invokeNative(Native Method) 在java.lang.reflect.Method.invoke(Method.java:511) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:833) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 在dalvik.system.NativeStart.main(本地方法)
这些是崩溃应用程序的功能:
private void startIfReady() throws IOException {
if (mStartRequested && mSurfaceAvailable) {
if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
mCameraSource.start(mSurfaceView.getHolder());
if (mOverlay != null) {
Size size = mCameraSource.getPreviewSize();
int min = Math.min(size.getWidth(), size.getHeight());
int max = Math.max(size.getWidth(), size.getHeight());
if (isPortraitMode()) {
// Swap width and height sizes when in portrait, since it will be rotated by
// 90 degrees
mOverlay.setCameraInfo(min, max, mCameraSource.getCameraFacing());
} else {
mOverlay.setCameraInfo(max, min, mCameraSource.getCameraFacing());
}
mOverlay.clear();
}
mStartRequested = false;
}
}