3
private Executor executor = Executors.newSingleThreadExecutor();
captureImage.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        imageCapture.takePicture(executor, new ImageCapture.OnImageCapturedCallback() {
            @SuppressLint("UnsafeExperimentalUsageError")
            @Override
            public void onCaptureSuccess(@NonNull ImageProxy image) {

                getActivity().runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        cameraProvider.unbind(preview);
                    }
                });

                FragmentCroppImage fragment2 = new FragmentCroppImage();
                FragmentManager fragmentManager =  getFragmentManager();
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.addToBackStack(null);
                fragmentTransaction.replace(R.id.frameLHaupt, fragment2);
                fragmentTransaction.commit();

            }

            @Override
            public void onError(@NonNull ImageCaptureException exception) {
                exception.printStackTrace();
            }
        });
    }
});

Ive got a simple code above. When I take a picture I open the new fragment. No problem BUT the issue is that when I return to cameraX fragment (popbackstack) ) receive the following error: Attempting to bind too many ImageCapture or VideoCapture instances.

After researching I read the following answer: answer I need to unbind the cameraX components which I did, but I research the same error.

So now I'm stuck. What can the reason be? It seems like I need to unbind the elements way before the imagecapture?

Savan Luffy
  • 440
  • 3
  • 12

1 Answers1

0

I solved the issue: I've unbinded just the preview. Unbinding every component solved the issue:

getActivity().runOnUiThread(new Runnable() {
  @Override
  public void run() { cameraProvider.unbindAll(); }  
});
Savan Luffy
  • 440
  • 3
  • 12