android: I get no stacktrace, phone just hangs

前端 未结 2 1504
孤独总比滥情好
孤独总比滥情好 2020-12-05 12:04

My phone crashes after i pause my camera app, then switching back and take a picture. This only happens on my Samsung Galaxy S, on my Huwai device it totally works. I have f

相关标签:
2条回答
  • 2020-12-05 12:31

    I finally (after hours, almost days of debugging) solved this, by removing the preview view and re-instantiating it:

        @Override
        protected void onResume() {
            super.onResume();
            mSurfaceViewContainer.removeAllViews();
            mSurfaceView = new SurfaceView(mSurfaceViewContainer.getContext());
            mSurfaceViewContainer.addView(mSurfaceView, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    
            SurfaceHolder previewHolder = mSurfaceView.getHolder();
            previewHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            previewHolder.addCallback(mSurfaceHolderCallback);
        }
    
    0 讨论(0)
  • 2020-12-05 12:36

    There is an IOException thrown (Could not find method java.io.IOException.<init>), however the IOException constructor used was introduced in API level 9, so it doesn't exist on the Galaxy S and it shows a strange log instead.

    About your problem, I would suggest trying to call lock() before release() :

    camera.stopPreview();
    camera.lock();
    camera.release();
    this.camera = null;
    

    I don't know if this will work but in this source code, I found a comment which says :

    // If we don't lock the camera, release() will fail.
    camera.lock();
    camera.release();
    

    It seems clearly related.

    0 讨论(0)
提交回复
热议问题