У меня есть приложение, которое использует API-интерфейс камеры, который отлично работает на Nexus 7 с kitkat, но после обновления на lollipop мое падение приложения. Я решил использовать новый Camera2 API без успеха: код работает хорошо на nexus5, но не работает на nexus 7. Так что я бы использовал старый API, пока не узнаю, где проблема с новым api. Порция кода, аварии, когда я инициализировать поверхность камеры:Использовать API старой камеры на lollipop
@SuppressWarnings("deprecation")
@SuppressLint("InlinedApi")
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Camera.Parameters params = mCamera.getParameters();
Camera.Size result = getBestPreviewSize(params, width, height);
Log.i("TAG", surfaceView.getWidth() + " " + surfaceView.getHeight());
params.setPreviewSize(result.width, result.height);
params.setPictureFormat(ImageFormat.JPEG);
params.setJpegQuality(100);
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
// params.setFlashMode(Camera.Parameters.FLASH_MODE_ON);
// params.setp
params.setPictureSize(dpWidth, dpWidth);
// default orientation is in landscape
params.setRotation(90);
mCamera.setParameters(params);
mCamera.startPreview();
}
аварии на SetParameters() инструкция:
12-18 10:44:54.130: E/AndroidRuntime(31543): FATAL EXCEPTION: main
12-18 10:44:54.130: E/AndroidRuntime(31543): Process: it.ictinnova.hipstamemostylist, PID: 31543
12-18 10:44:54.130: E/AndroidRuntime(31543): java.lang.RuntimeException: setParameters failed
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.hardware.Camera.native_setParameters(Native Method)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.hardware.Camera.setParameters(Camera.java:1876)
12-18 10:44:54.130: E/AndroidRuntime(31543): at it.ictinnova.hipstamemostylist.ScattaFoto.surfaceChanged(ScattaFoto.java:137)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.SurfaceView.updateWindow(SurfaceView.java:590)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:176)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1956)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.Choreographer.doCallbacks(Choreographer.java:580)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.Choreographer.doFrame(Choreographer.java:550)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.os.Handler.handleCallback(Handler.java:739)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.os.Handler.dispatchMessage(Handler.java:95)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.os.Looper.loop(Looper.java:135)
12-18 10:44:54.130: E/AndroidRuntime(31543): at android.app.ActivityThread.main(ActivityThread.java:5221)
12-18 10:44:54.130: E/AndroidRuntime(31543): at java.lang.reflect.Method.invoke(Native Method)
12-18 10:44:54.130: E/AndroidRuntime(31543): at java.lang.reflect.Method.invoke(Method.java:372)
12-18 10:44:54.130: E/AndroidRuntime(31543): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
12-18 10:44:54.130: E/AndroidRuntime(31543): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Что случилось? это тот же код, который я использовал на kitcat