fixing exception of updating layout from cameraKit thread on some devices

E/AndroidRuntime: FATAL EXCEPTION: CameraViewWorker
                                                                       Process: com.in4mo.mmr300.demo, PID: 32194
                                                                       android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
                                                                           at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6604)
                                                                           at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:947)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at android.view.View.requestLayout(View.java:18745)
                                                                           at com.otaliastudios.cameraview.CameraView$CameraCallbacks.onCameraPreviewSizeChanged(CameraView.java:1218)
                                                                           at com.otaliastudios.cameraview.Camera1.setup(Camera1.java:116)
                                                                           at com.otaliastudios.cameraview.Camera1.start(Camera1.java:153)
                                                                           at com.otaliastudios.cameraview.CameraView$2.run(CameraView.java:500)
                                                                           at android.os.Handler.handleCallback(Handler.java:739)
                                                                           at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                           at android.os.Looper.loop(Looper.java:148)
                                                                           at android.os.HandlerThread.run(HandlerThread.java:61)
pull/1/head
Shtolik 8 years ago committed by anatol
parent b4eeb2368c
commit 1ca523f36d
  1. 7
      cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java

@ -1215,7 +1215,12 @@ public class CameraView extends FrameLayout {
// Request a layout pass for onMeasure() to do its stuff.
// Potentially this will change CameraView size, which changes Surface size,
// which triggers a new Preview size. But hopefully it will converge.
requestLayout();
uiHandler.post(new Runnable() {
@Override
public void run() {
requestLayout();
}
});
}

Loading…
Cancel
Save