android - Camera.open 有时会返回 null

标签 android nullpointerexception camera

我收到很多关于 crashlytics 的崩溃报告,其中 Camera 对象为空。在测试和使用该应用程序期间,我没有遇到这种情况。

Fatal Exception: java.lang.RuntimeException: Unable to resume activity {packageName/activityName}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3026)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3057)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
   at android.app.ActivityThread.access$800(ActivityThread.java:151)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:135)
   at android.app.ActivityThread.main(ActivityThread.java:5349)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'android.hardware.Camera$Parameters android.hardware.Camera.getParameters()' on a null object reference
   at activityName.o(SourceFile:612)
   at activityName.u(SourceFile:772)
   at activityName.onResume(SourceFile:539)
   at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1241)
   at android.app.Activity.performResume(Activity.java:6106)
   at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3015)
   at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3057)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)
   at android.app.ActivityThread.access$800(ActivityThread.java:151)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1309)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:135)
   at android.app.ActivityThread.main(ActivityThread.java:5349)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:908)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703)

崩溃发生在 camera.getParameters() 处。

那基本上是因为相机出于某种原因暂时无法连接吗?

是不是类似于"Can't connect to camera."手机上的相机应用程序出现错误?

希望有人能阐明这一点并分享一些处理方法。

最佳答案

1) 您是否将相机初始化为?

 camera = camera.open();

2) 您是否使用了相机权限?

 <uses-permission android:name="android.permission.CAMERA"/>

3) 确保您在打开相机后没有立即执行此操作:

camera  = null;

4) 尝试在 manifest.xml 中显式设置相机在纵向模式下的方向

5) 如果您使用的是 Marshmellow,您将需要运行时权限才能访问相机。

关于android - Camera.open 有时会返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41250468/

相关文章:

java - Spring 依赖注入(inject)的 NullPointerException

java - Java 的 NullPointerException 是否可以更改为报告哪个变量为空?

Android 自定义相机 SurfaceView OnClick 在 sdcard 上保存图像?

ios - Sample Buffer Delegate Swift 2 用于实时视频过滤器

java - 如何更新SDK工具

android - Phonegap 应用程序不适用于 android 4.0

Java - 填充 ArrayList 会出现空指针错误

Android相机无法预览,可以拍照

android - 如何知道哪个 View 具有当前焦点

android - 错误 : Name not maching for self signed SSL certificates on Android