- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个初始化条形码检测的 Activity 。然后我转到另一个 Activity ,当我按下后退按钮时,它会触发此异常的循环:
com.example.myapp E/CameraSource: Exception thrown from receiver.
java.lang.NullPointerException
at com.google.android.gms.vision.CameraSource$zzb.run(Unknown Source)
at java.lang.Thread.run(Thread.java:841)
如果我坚持并再次进入另一个 Activity ,它会触发另一个异常:
com.example.myapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapp, PID: 22942
java.lang.NullPointerException
at com.google.android.gms.vision.CameraSource$zzb.release(Unknown Source)
at com.google.android.gms.vision.CameraSource.release(Unknown Source)
at com.example.myapp.CameraActivity$3.surfaceDestroyed(CameraActivity.java:184)
at android.view.SurfaceView.updateWindow(SurfaceView.java:586)
at android.view.SurfaceView.onWindowVisibilityChanged(SurfaceView.java:240)
at android.view.View.dispatchWindowVisibilityChanged(View.java:8495)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewGroup.dispatchWindowVisibilityChanged(ViewGroup.java:1087)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1537)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6602)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:805)
at android.view.Choreographer.doCallbacks(Choreographer.java:605)
at android.view.Choreographer.doFrame(Choreographer.java:575)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:791)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
at dalvik.system.NativeStart.main(Native Method)
CameraSource 在 onCreate 中是这样初始化的:
final CameraSource cameraSource = new CameraSource.Builder(this, barcodeDetector)
.setRequestedFps(15f)
.setAutoFocusEnabled(true)
.build();
mCameraView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED)
return;
cameraSource.start(holder);
} catch (IOException e) {
Log.e(getClass().getName(), e.getMessage());
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
cameraSource.release();
}
});
最佳答案
我将相机初始化代码从 onCreate
移到了 onResume
并像这样保护相机释放:
mCameraView.getHolder().addCallback(new SurfaceHolder.Callback() {
...
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mCameraSource != null) {
mCameraSource.release();
mCameraSource = null;
}
}
});
现在可以了。
关于android - 返回 Activity 后 CameraSource 触发空异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38982826/
我有两个安卓设备。 CameraSource 对他们的工作方式不同。对于一台设备,照片的方向在保存后没有旋转是正确的。但是对于另一台设备,保存的照片方向错误。 我已经创建了 CameraSource:
当我想使用相机拍照时,CameraSource 出现了一些问题。我想要的只是用我在 xml 文件上制作的按钮拍照并使用“CameraSource”拍照,因为我也在使用“TextRecognizer”。
我正在实现 google-vision face tracker 中给出的示例.MyFaceDetector 类: public class MyFaceDetector extends Detect
我正在使用视觉 API 来跟踪人脸。我根据面部位置应用了一个蒙版。当我从前置摄像头拍照时,我调用 camerasource.takePicture() 来保存图像。我在某些设备(如三星)中面临图像旋转
我一直在关注以下tutorial ,它使用移动视觉 api 创建条形码/二维码扫描仪。虽然我已经输入了它所说的确切代码(至少我认为),但来自 cameraSource 的摄像头馈送。 我在这个过程中添
我正在使用 google vision api 构建一个具有二维码扫描仪的应用程序。读取二维码后我无法停止相机。流程是 MainActivity -> QrActivity一旦二维码收到检测,应用程序
我使用 Vision API 扫描条码。几乎完成了,除了自动对焦。我遵循此链接中的指南:https://developers.google.com/android/reference/com/goog
背景:我正在实现一个 mask 来帮助人们聚焦他们的相机并在每张照片上产生统一的结果。可悲的是, mask 需要在前后摄像头之间切换时调整其大小,以便为人们提供很好的指导。 问题:我一直在尝试检测相机
我正在开发一个 android 应用程序,它允许用户检查 QR 码内容并根据读取结果执行某些操作。 为了提高性能,我想实现两种方法: onClickFocus(允许用户在点击屏幕时对焦相机) 打开/关
我有一个初始化条形码检测的 Activity 。然后我转到另一个 Activity ,当我按下后退按钮时,它会触发此异常的循环: com.example.myapp E/CameraSource: E
我正在尝试开发一个带有人脸检测功能的简单相机应用程序,我正在使用这里的 android-vision 示例 https://github.com/googlesamples/android-visio
现在,我们的应用程序正在成功运行 Snapdragon SDK。我们正在尝试在我们的项目中实现 Vision 8.3.0 中的 FaceDetector,以增加兼容设备的数量。我们不能使用 Camer
我已从此处查看最新的 Google Vision API: https://github.com/googlesamples/android-vision 我在带有 KitKat 的 LG G2 设备
基于 Google Vision Face Tracker 的面部追踪器应用程序.默认情况下,Face Tracker 使用后置/后置摄像头,但我想使用前置摄像头检测人脸。 这是google visi
移动视觉API中的setRequestedFps是什么意思。 相机代码: mCameraSource = new CameraSource.Builder(getApplica
这个问题是关于使用 Google's Mobile Vision Face API在 Android 上。 故事(背景)和我想做的事 我正在尝试实现一个功能,该功能可以检测相机 View 中的人脸,并
我必须在 Google Vision API 的 CameraSource 中实现来构建相机并在捕获图像之前进行面部检测。现在我遇到了一些问题,所以我需要从 CameraSource 访问相机对象。
我正在尝试抓取相机捕获的帧,对它们进行编码,最后使用 RTP/RTSP 发送它们。 为了进行捕捉,我使用了 stagefright 的 CameraSource 类。屏幕上的预览(从 Java 传递的
下面是我的条形码扫描器 Activity ,除了 setAutoFocusEnabled(true) 之外一切正常。它在运行时返回一条消息,指出我的设备不支持自动对焦,尽管 Samsung Tab E
我是一名优秀的程序员,十分优秀!