Error de compilación de Android al actualizar el complemento de cámara de Cordova

Estoy recibiendo error de compilación después de actualizar cordova cámara plugin de 2.1.1 a 2.3.1. A continuación se muestran los detalles de la versión

Cordova version: 6.3.1, cordova-plugin-camera 2.1.1 "Cámara". Debajo están los pasos que estoy siguiendo

cordova plugin remove cordova-plugin-camera --save cordova plugin add cordova-plugin-camera --save 

Veo que el archivo config.xml ha sido actualizado para

Cuando construyo build android cordova obtengo el siguiente error Error: cmd: Error en el comando con el código de salida 1 Salida de error: Nota: Algunos archivos de entrada utilizan o reemplazan una API obsoleta. Nota: Recompile con -Xlint: deprecation para más detalles. Nota: Algunos archivos de entrada utilizan o reemplazan una API obsoleta. Nota: Recompile con -Xlint: deprecation para más detalles. Warning: string 'menu_settings' no tiene traducción por defecto.

Plataformas \ android \ src \ org \ apache \ cordova \ cámara \ CameraLauncher.java: 32: error: no se puede encontrar el símbolo import org.apache.cordova.BuildHelper; Símbolo: class BuildHelper ubicación: paquete org.apache.cordova plataformas \ android \ src \ org \ apache \ cordova \ cámara \ CameraLauncher.java: 140: error: no se puede encontrar el símbolo this.applicationId = (String) BuildHelper.getBuildConfigValue (cordova. GetActivity (), "APPLICATION_ID"); ^ Symbol: variable BuildHelper ubicación: class CameraLauncher Nota: Algunos archivos de entrada utilizan o reemplazan una API obsoleta. Nota: Recompile con -Xlint: deprecation para más detalles. Nota: Algunos archivos de entrada utilizan operaciones no comprobadas o inseguras. Nota: Recompile con -Xlint: desmarcada para obtener detalles. 2 errores

FALLA: La generación falló con una excepción.

  • Lo que salió mal: La ejecución falló para la tarea ': compileDebugJavaWithJavac'.

    Error en la compilación; Vea la salida de error del compilador para más detalles.

  • Intente: Ejecutar con la opción –stacktrace para obtener el seguimiento de la pila. Ejecute con –info o – opción de depuración para obtener más salida de registro.

Resolvimos esto forzando la instalación de la versión 1.1.0.

Estos son los comandos que ejecutamos desde el CLI:

 cordova plugin remove cordova-plugin-compat --force cordova plugin add [email protected] 

Me encontré con el mismo problema hoy. Lo tengo arreglado mediante la reinstalación del complemento cordova-plugin-compat . Debido a las dependencias que usé –force.

 cordova plugin remove cordova-plugin-compat --force cordova plugin add cordova-plugin-compat 

Debe actualizar cordova-plugin-camera a la versión 1.1

También estaba recibiendo error de la cámara plugin 2.3.1. Es debido a la dependencia en el cordova-plugin-compat para obtener el id de la aplicación. Quitar cordova-plugin-compat e instalar 1.1.0, no funcionó para mí.

Para corregir esto quitar este código de "src / android / CameraLauncher.java":

 140 - this.applicationId = (String) BuildHelper.getBuildConfigValue(cordova.getActivity(), "APPLICATION_ID"); 141 - this.applicationId = preferences.getString("applicationId", this.applicationId); 

y añada:

 140 + this.applicationId = cordova.getActivity().getPackageName(); 

Introduzca aquí la descripción de la imagen

Tengo el mismo error. Esto es realmente causado por una versión antigua del complemento cordova-plugin-compat (1.0), actualizando a la versión 1.1 (la última), que funcionará.

Esto es lo que hice,

  1. Eliminar todas las plataformas

    Plataforma cordova eliminar android

    Plataforma cordova eliminar ios

  2. Eliminar el complemento antiguo y agregar nuevo

    Cordova plugin quitar cordova-plugin-compat

    Cordova plugin añadir cordova-plugin-compat

  3. Añadir todas las plataformas de nuevo

    Plataforma cordova añadir android

    Plataforma cordova añadir ios

  4. Re-compilar y todo funciona!

He hecho cambios en el método a continuación.

 // intiatiate you action accordingly if (action.equals("takePicture")) { this.srcType = CAMERA; this.destType = FILE_URI; this.saveToPhotoAlbum = false; this.targetHeight = 0; this.targetWidth = 0; this.encodingType = JPEG; this.mediaType = PICTURE; this.mQuality = 50; // this.destType = args.getInt(1); this.srcType = args.getInt(2); this.mQuality = args.getInt(0); this.targetWidth = args.getInt(3); this.targetHeight = args.getInt(4); this.encodingType = args.getInt(5); this.mediaType = args.getInt(6); this.allowEdit = args.getBoolean(7); this.correctOrientation = args.getBoolean(8); this.saveToPhotoAlbum = args.getBoolean(9); // If the user specifies a 0 or smaller width/height // make it -1 so later comparisons succeed if (this.targetWidth < 1) { this.targetWidth = -1; } if (this.targetHeight < 1) { this.targetHeight = -1; } if (this.targetHeight == -1 && this.targetWidth == -1 && this.mQuality == 100 && !this.correctOrientation && this.encodingType == PNG && this.srcType == CAMERA) { this.encodingType = JPEG; } try { if (this.srcType == CAMERA) { this.callTakePicture(destType, encodingType); } else if ((this.srcType == PHOTOLIBRARY) || (this.srcType == SAVEDPHOTOALBUM)) { // FIXME: Stop always requesting the permission if(!PermissionHelper.hasPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE)) { PermissionHelper.requestPermission(this, SAVE_TO_ALBUM_SEC, Manifest.permission.READ_EXTERNAL_STORAGE); } else { this.getImage(this.srcType, destType, encodingType); } } } catch (IllegalArgumentException e) { callbackContext.error("Illegal Argument Exception"); PluginResult r = new PluginResult(PluginResult.Status.ERROR); callbackContext.sendPluginResult(r); return true; } PluginResult r = new PluginResult(PluginResult.Status.NO_RESULT); r.setKeepCallback(true); callbackContext.sendPluginResult(r); return true; } return false; } 
  • Cordova CLI Phone Gap Aplicación navigator.app.exit Función no funciona
  • Video HTML5 - búsqueda precisa en dispositivos Android?
  • Cordova - StatusBar escondido en el lanzamiento - Android
  • Acceder al almacenamiento interno de android con cordova file plugin
  • Cordova 3.6.3 Plugin de archivos - obtenga archivos de video locales en android
  • Incluye librerías nativas con la aplicación de Chrome para móviles
  • Android Cordova 5.0+ caída de la cámara
  • Biblioteca, que es depdendency de otra biblioteca, no reconocido en cordova ejecutar android
  • Cordova Geolocalización plugin devolver objeto de posición vacía en Android
  • No se puede agregar cordova-plugin-uid al proyecto de Visual Studio 2013
  • IBeaconGap Cordova Plugin basado en RadiusNetwork Android Library
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.