Вариант использования не должен создаваться до инициализации камеры, что и делает ProcessCameraProvider.getInstance()
асинхронно. Так что вы можете столкнуться с вариантом использования Preview, созданным до завершения инициализации, поэтому предварительный просмотр не работает. Вместо этого ваш код должен выглядеть следующим образом.
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get(context);
Preview preview = new Preview.Builder().build();
preview.setSurfaceProvider(previewView.getSurfaceProvider());
cameraProvider.bindToLifecycle(lifecycleOwner, selector, preview);
} catch (Exception exception) {
exception.printStackTrace();
}
}, ContextCompat.getMainExecutor(context));