相机无法工作 - 启动预览失败

问题描述 投票:0回答:2

我的相机应用程序在 Android 2.x 设备上运行时总是出现异常。在较新的 Android 设备上,该应用程序运行良好。

堆栈跟踪:

10-31 19:51:52.187: W/System.err(14904): java.lang.RuntimeException: startPreview failed
10-31 19:51:52.195: W/System.err(14904):    at android.hardware.Camera.startPreview(Native Method)
10-31 19:51:52.195: W/System.err(14904):    at com.example.MainActivity.startCamera(MainActivity.java:418)
10-31 19:51:52.195: W/System.err(14904):    at com.example.MainActivity.surfaceChanged(MainActivity.java:467)
10-31 19:51:52.195: W/System.err(14904):    at android.view.SurfaceView.updateWindow(SurfaceView.java:558)
10-31 19:51:52.195: W/System.err(14904):    at android.view.SurfaceView.dispatchDraw(SurfaceView.java:350)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.195: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewGroup.drawChild(ViewGroup.java:1644)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373)
10-31 19:51:52.203: W/System.err(14904):    at android.view.View.draw(View.java:6883)
10-31 19:51:52.203: W/System.err(14904):    at android.widget.FrameLayout.draw(FrameLayout.java:357)
10-31 19:51:52.203: W/System.err(14904):    at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1964)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewRoot.draw(ViewRoot.java:1529)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1266)
10-31 19:51:52.203: W/System.err(14904):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1867)
10-31 19:51:52.203: W/System.err(14904):    at android.os.Handler.dispatchMessage(Handler.java:99)
10-31 19:51:52.203: W/System.err(14904):    at android.os.Looper.loop(Looper.java:130)
10-31 19:51:52.203: W/System.err(14904):    at android.app.ActivityThread.main(ActivityThread.java:3687)
10-31 19:51:52.203: W/System.err(14904):    at java.lang.reflect.Method.invokeNative(Native Method)
10-31 19:51:52.203: W/System.err(14904):    at java.lang.reflect.Method.invoke(Method.java:507)
10-31 19:51:52.203: W/System.err(14904):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
10-31 19:51:52.203: W/System.err(14904):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
10-31 19:51:52.203: W/System.err(14904):    at dalvik.system.NativeStart.main(Native Method)
android exception camera surfaceview
2个回答
9
投票

在 SurfaceView Holder 上,确保将类型设置为 SURFACE_TYPE_PUSH_BUFFERS

@Override
public void onCreate(Bundle savedInstanceState) {
   // ...
   SurfaceView s=(SurfaceView)findViewById(R.id.surface);
   SurfaceHolder h=s.getHolder();
   h.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

0
投票

java.lang.RuntimeException:启动预览失败 在 android.hardware.Camera.startPreview(本机方法) 在 com.android.camera.CameraManager$CameraHandler.handleMessage(CameraManager.java:334) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:201) 在 android.os.HandlerThread.run(HandlerThread.java:65)

© www.soinside.com 2019 - 2024. All rights reserved.