ClassNotFoundException: android.hardware.camera2.CameraAccessException con OpenCV 3.1.0

Estoy trabajando en un proyecto androide con Android Studio 2.2 que utiliza la biblioteca OpenCV 3.1.0. Importaba la biblioteca de acuerdo con esta respuesta . La situación es la siguiente:

  • Cuando compile el proyecto para un dispositivo con API> = 21 (exactamente API 23), todo va bien.
  • Cuando compile el proyecto para un dispositivo con API <21 (exactamente la API 19, la API mínima que quiero soportar), obtengo el siguiente error de compilación:

Gradle log

FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:transformClassesWithInstantRunForDebug'. > java.lang.ClassNotFoundException: android.hardware.camera2.CameraAccessException * Try: Run with --info or --debug option to get more log output. * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithInstantRunForDebug'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)... 

He encontrado estas preguntas similares:

  • Error: el paquete android.hardware.camera2 no existe OpenCV
  • No se puede importar las clases import android.hardware.camera2

En ambos, la solución fue establecer la compileSdkVersion a un mínimo de 21 (la versión donde se camera2 API de camera2 ) y asegurarse de que los archivos build.gradle del proyecto y OpenCV coincidan.

Por desgracia, no funciona para mí. Sigo recibiendo el mismo error. ¿Alguna idea?

Mi código está disponible aquí: Repositorio Github .

¡Gracias por tu ayuda!

Finalmente, encontré una solución temporal gracias a @ JavierMollá.

La desactivación de Instant Run resolvió el problema. Vaya a File > Settings > Build, Execution, Deployment > InstantRun y desmarque Enable Instant Run to hot swap code...

Desactivar la ejecución instantánea

Instant Run es una de las principales características de Android Studio, pero desafortunadamente parece que todavía está en progreso … Como @AndreKR sugiere, puede estar relacionado con este número # 212672 .

  • Explorador de documentos Android con opencv
  • Android Marshmallow - Llamada a un módulo de biblioteca (biblioteca nativa) de otro módulo de biblioteca que se estrelló
  • OpenCV se bloquea después de un corto período de tiempo en la aplicación para Android
  • Referencia indefinida a 'cv :: initModule_nonfree ()' En Android
  • OpenCV + Eclipse + Android: Error org.opencv.video Video.java
  • Cómo configurar la cámara de OpenCV para mostrar la vista previa tanto en orientación vertical como en pantalla completa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.