Je reçois une erreur de construction après la mise à jour du plug-in cordova camera de 2.1.1 à 2.3.1. Ci-dessous les détails de la version
version cordova: 6.3.1, cordova-plugin-camera 2.1.1 "Caméra". Voici les étapes que je suis en train de suivre
cordova plugin remove cordova-plugin-camera --save
cordova plugin add cordova-plugin-camera --save
Je vois que le fichier config.xml a été mis à jour en
Lorsque je compile cordova Android build, le message d'erreur ci-dessous apparaît Erreur: cmd: la commande a échoué avec le code de sortie 1 Erreur de sortie: Remarque: Certains fichiers d'entrée utilisent ou remplacent une API obsolète . Remarque: Recompilez avec -Xlint: obsolète pour plus de détails . Remarque: Certains fichiers d'entrée utilisent ou remplacent une API obsolète . Remarque: Recompilez avec -Xlint: obsolète pour plus de détails . avertissement: la chaîne 'menu_settings' n'a pas de traduction par défaut.
plates-formes\Android\src\org\Apache\cordova\camera\CameraLauncher.Java: 32: erreur: impossible de trouver le symbole importer org.Apache.cordova.BuildHelper; symbole: classe BuildHelper emplacement: paquet org.Apache.cordova plates-formes\Android\src\org\Apache\cordova\camera\CameraLauncher.Java: 140: erreur: impossible de trouver le symbole this.applicationId = (String) BuildHelper.getBuildConfigValue (cordova.getActivity (), "APPLICATION_ID"); ^ symbole: variable BuildHelper emplacement: classe CameraLauncher Remarque: Certains fichiers d'entrée utilisent ou remplacent une API obsolète . Remarque: Recompilez avec -Xlint: obsolète pour plus de détails . Remarque: Certains fichiers d'entrée utilisent des opérations non contrôlées ou non sécurisées . Remarque: Recompiler avec -Xlint: décoché pour plus de détails . 2 erreurs
ECHEC: La construction a échoué avec une exception.
Ce qui s'est mal passé: L'exécution a échoué pour la tâche ': compileDebugJavaWithJavac'.
La compilation a échoué. voir la sortie d'erreur du compilateur pour plus de détails.
Essayez: Exécutez-le avec l'option --stacktrace pour obtenir le suivi de la pile. Exécutez-la avec l'option --info ou - debug pour obtenir davantage de sorties de journal.
Nous avons résolu ce problème en forçant l'installation de la version 1.1.0.
Voici les commandes que nous avons exécutées à partir de la CLI:
cordova plugin remove cordova-plugin-compat --force
cordova plugin add [email protected]
J'ai rencontré le même problème aujourd'hui. Je l'ai fait réparer en réinstallant le plugin cordova-plugin-compat
. En raison des dépendances que j'ai utilisées --force.
cordova plugin remove cordova-plugin-compat --force
cordova plugin add cordova-plugin-compat
Vous devez mettre à niveau cordova-plugin-camera vers la version 1.1.
Je recevais aussi une erreur du plugin de caméra 2.3.1. C’est à cause de la dépendance de cordova-plugin-compat d’obtenir l’identifiant de l’application. Le retrait de cordova-plugin-compat et l’installation de la version 1.1.0 n’a pas fonctionné pour moi.
Pour résoudre ce problème, supprimez ce code de "src/Android/CameraLauncher.Java":
140 - this.applicationId = (String) BuildHelper.getBuildConfigValue(cordova.getActivity(), "APPLICATION_ID");
141 - this.applicationId = preferences.getString("applicationId", this.applicationId);
et ajouter:
140 + this.applicationId = cordova.getActivity().getPackageName();
J'ai exactement la même erreur. Ceci est en fait causé par une ancienne version du plugin cordova-plugin-compat (1.0), en passant à la version 1.1 (la plus récente), cela fonctionnera.
Voici ce que j'ai fait,
Supprimer toutes les plateformes
plate-forme cordova supprimer Android
plate-forme cordova retirer ios
Supprimer l'ancien plugin et ajouter un nouveau
cordova plugin supprimer cordova-plugin-compat
cordova plugin ajoute cordova-plugin-compat
Ajouter toutes les plateformes en retour
plate-forme cordova ajouter Android
plate-forme cordova ajoute ios
Re-compiler et tout fonctionne!
J'ai apporté des modifications à la méthode ci-dessous.
// 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;
}