1

I am a beginner in Andriod and have a problem now.

How to Create a QR Code Scanner with CameraX and ZXing is described in here and here. I'm trying to make a sample project.

But I have an error in code

private PreviewView previewView;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
    previewView = findViewById(R.id.activity_main_previewView);
...
}
...
private void bindCameraPreview(@NonNull ProcessCameraProvider cameraProvider) {
    previewView.setPreferredImplementationMode(PreviewView.ImplementationMode.SURFACE_VIEW);
...
}

Error is "Cannot resolve method 'setPreferredImplementationMode' in 'PreviewView'". There is no 'SURFACE_VIEW' in 'PreviewView.ImplementationMode' too.

Please help me fix this problem.

Android Studio 4.1.2, a project for Android 9.

Ticherhaz FreePalestine
  • 2,738
  • 4
  • 20
  • 46

1 Answers1

5

This is probably due to the version of androidx.camera:camera-view that you're using.

setPreferredImplementationMode became available in version 1.0.0-alpha09, and was later renamed to setImplementationMode.

PreviewView's implementation modes TEXTURE_VIEW and SURFACE_VIEW were renamed in version 1.0.0-alpha15 to COMPATIBLE and PERFORMANCE respectively.

Husayn Hakeem
  • 4,184
  • 1
  • 16
  • 31
  • Thank you! What shell I do with next 'preview.setSurfaceProvider(previewView.crecreateSurfaceProvider());'? PreviewView.crecreateSurfaceProvider must be renamed too? – Aleksandr V Jul 16 '21 at 07:48
  • Yes, it was renamed to [`getSurfaceProvider()`](https://developer.android.com/reference/androidx/camera/view/PreviewView#getSurfaceProvider()). – Husayn Hakeem Jul 16 '21 at 17:27