Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

903
Views
camerax "No vinculado a una cámara válida" para el caso de uso de imageCapture en Android 11

Constantemente obtengo el error

No vinculado a una cámara válida

al intentar implementar el caso de uso de imageCapture. Estoy implementando la función en Java siguiendo el tutorial de camerax aquí .

El caso de uso de vista previa se vincula correctamente y puedo acceder a la cámara cuando inicio la actividad, pero cuando toco el botón "tomar foto", aparece el siguiente error:

 Photo capture failed: ${exception.message} androidx.camera.core.ImageCaptureException: Not bound to a valid Camera [ImageCapture:androidx.camera.core.ImageCapture-9aad1b57-8fb6-4a6e-b528-9347343369b6] at androidx.camera.core.ImageCapture.lambda$sendImageCaptureRequest$6$ImageCapture(ImageCapture.java:825) at androidx.camera.core.-$$Lambda$ImageCapture$2B91NcXQyr59NDscigcxsZb94mc.run(Unknown Source:4) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7656) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

¿Alguien enfrenta un problema similar? ¿Algún consejo?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

cameraProvider.bindToLifecycle( this, cameraSelector, preview, imageCapture)
over 4 years ago · Santiago Trujillo Report

0

Para solucionar este problema, debe vincular las colecciones de UseCase a lifeCycleOwner .

¿Cuál es el caso de uso :

Un UseCase proporciona funcionalidad para asignar el conjunto de argumentos en un caso de uso a argumentos que una cámara puede usar. UseCase también comunicará el estado activo/inactivo a la cámara.

Primero debe tener las dependencias a continuación en su build.gradel :

 dependencies { /* rest of your implementation */ // CameraX core library using the camera2 implementation def camerax_version = "1.1.0-alpha03" // The following line is optional, as the core library is included indirectly by camera-camera2 implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" // If you want to additionally use the CameraX Lifecycle library implementation "androidx.camera:camera-lifecycle:${camerax_version}" }

Y ahora puedes enlazarlo usando:

 public androidx.camera.core.Camera bindToLifecycle(@NonNull @NotNull androidx.lifecycle.LifecycleOwner lifecycleOwner, @NonNull @NotNull androidx.camera.core.CameraSelector cameraSelector, @NonNull @NotNull androidx.camera.core.UseCase... useCases)

Por ejemplo, tengo este código en mi MainActivity:

Para Java :

 UseCase imageCapture = new ImageCapture.Builder() .setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY) .build(); ListenableFuture<ProcessCameraProvider> providerListenableFuture = ProcessCameraProvider.getInstance(this); ProcessCameraProvider processCameraProvider = providerListenableFuture.get(); processCameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA, imageCapture);

Y para Kotlin :

 val outputFileOptions = ImageCapture.OutputFileOptions.Builder(file).build() val imageCapture = ImageCapture.Builder() .setCaptureMode(ImageCapture.CAPTURE_MODE_MAXIMIZE_QUALITY) .build() val cameraProviderFuture: ListenableFuture<ProcessCameraProvider> = ProcessCameraProvider.getInstance(this) val processCameraProvider = cameraProviderFuture.get() processCameraProvider.bindToLifecycle(this, CameraSelector.DEFAULT_BACK_CAMERA, imageCapture)

Para más detalles consulte la implementación de CameraX en la documentación oficial

over 4 years ago · Santiago Trujillo Report

0

Asegúrese de enlazar también para la preview y la captura de imagen al hacer imageCapture

 // Bind use cases to camera cameraProvider.bindToLifecycle(this, cameraSelector, imageCapture, preview)
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!