Java 相机错误
这是我在AndroidManifest.xml中的权限Java 相机错误,java,android,camera,Java,Android,Camera,这是我在AndroidManifest.xml中的权限 <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> 这是我的activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/ap
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
这是我的activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
<Button
android:id="@+id/button_capture"
android:text="Capture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
</LinearLayout>
当我打开应用程序时,它会崩溃,并且会出现以下错误:
05-16 16:17:55.694 14553-14553/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.badubadu.test, PID: 14553
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.setPreviewDisplay(android.view.SurfaceHolder)' on a null object reference
at com.test.badubadu.test.CameraPreview.surfaceCreated(CameraPreview.java:31)
at android.view.SurfaceView.updateWindow(SurfaceView.java:622)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:161)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2205)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1250)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6311)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.java:6217)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
编辑错误:
05-16 22:52:39.451 18993-18993/com.test.blaba.test W/CameraBase: An error occurred while connecting to camera 0: Service not available
05-16 22:52:39.451 18993-18993/com.test.blabla.test D/Error:: Error starting camera preview: Fail to connect to camera service
05-16 22:52:39.578 18993-19091/com.test.blaba.test I/Adreno: QUALCOMM build : b6da14b, I47548ba842
Build Date : 11/14/16
OpenGL ES Shader Compiler Version: XE031.09.00.03
Local Branch :
Remote Branch : quic/LA.BF64.1.2.3_rb1.6
Remote Branch : NONE
Reconstruct Branch : NOTHING
所以我不知道错误在哪里。。。
感谢您的帮助……:)
mCamera
为null
,因为getCameraInstance()
正在返回null
。这很可能是因为Camera.open()
正在引发异常始终确保可以看到异常。在早期软件开发过程中,这主要是通过记录这些异常(例如,Log.e()
)。mCamera
是null
,因为getCameraInstance()
返回null
。这很可能是因为Camera.open()
正在引发异常始终确保可以看到异常。在早期的软件开发过程中,这主要是通过记录这些异常(例如,Log.e()
)。您需要停止接受异常并将其读出-它们可能会让您了解问题所在!您需要停止吞咽您的异常并读出它们,因为它们可能会让您知道问题所在!抱歉,我不明白…我必须编辑什么才能让它工作:)@user7938448:查找代码中的每个捕获项。确保在捕获异常时执行的代码块包含将记录该异常的内容。您在某些地方(例如,Log.d(“错误:”,“启动相机预览时出错:”+e.getMessage());
),但不是全部。你需要它在所有这些。然后,再次运行代码,并查找其他错误消息。请参阅“我的更新…”有一个更具体的错误。@user7938448:尝试重新启动设备。通常,这个错误意味着某个东西获取了相机,但没有正确地释放它。我尝试了n次以上。它不起作用(我还能做什么?对不起,我不明白…我必须编辑什么才能让它工作:)@user7938448:查找代码中的每个捕获项。确保在捕获异常时执行的代码块包含将记录该异常的内容。您在某些地方(例如,Log.d(“错误:”,“启动相机预览时出错:”+e.getMessage());
),但不是全部。你需要它在所有这些。然后,再次运行代码,并查找其他错误消息。请参阅“我的更新…”有一个更具体的错误。@user7938448:尝试重新启动设备。通常,这个错误意味着某个东西获取了相机,但没有正确地释放它。我尝试了n次以上。它不起作用(我还能做什么?
05-16 16:17:55.694 14553-14553/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test.badubadu.test, PID: 14553
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.hardware.Camera.setPreviewDisplay(android.view.SurfaceHolder)' on a null object reference
at com.test.badubadu.test.CameraPreview.surfaceCreated(CameraPreview.java:31)
at android.view.SurfaceView.updateWindow(SurfaceView.java:622)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:161)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2205)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1250)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6311)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:871)
at android.view.Choreographer.doCallbacks(Choreographer.java:683)
at android.view.Choreographer.doFrame(Choreographer.java:619)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:857)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:241)
at android.app.ActivityThread.main(ActivityThread.java:6217)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
05-16 22:52:39.451 18993-18993/com.test.blaba.test W/CameraBase: An error occurred while connecting to camera 0: Service not available
05-16 22:52:39.451 18993-18993/com.test.blabla.test D/Error:: Error starting camera preview: Fail to connect to camera service
05-16 22:52:39.578 18993-19091/com.test.blaba.test I/Adreno: QUALCOMM build : b6da14b, I47548ba842
Build Date : 11/14/16
OpenGL ES Shader Compiler Version: XE031.09.00.03
Local Branch :
Remote Branch : quic/LA.BF64.1.2.3_rb1.6
Remote Branch : NONE
Reconstruct Branch : NOTHING