J’ai récemment migré mon application vers Android-Studio. J’ai eu quelques problèmes à le faire, mais j’ai fini par les surmonter.
Pour une raison quelconque, sur Android Studio, lorsque je tente de signer un APK, je reçois beaucoup d’erreurs qui ressemblent à ceci:
Error:(16) Error: "..." is not translated in "de" (German), "el" (Greek), "iw" (Hebrew) [MissingTranslation]
(où “…” est une chaîne)
Au fond, après beaucoup d’erreurs de ce genre, je vois ceci:
Error:Execution failed for task ':app:lintVitalRelease'. > Lint found fatal errors while assembling a release target. To proceed, either fix the issues identified by lint, or modify your build script as follows: ... android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } ...
Je ne suis pas sûr de ce qui ne va pas et comment je peux le réparer. Sur Eclipse, je l’ai fait très facilement. Les traductions manquantes ne devraient pas m’empêcher de signer un APK …
Pour moi, il semble que Lint empêche l’exportation de l’APK, et que la raison en est que je n’ai pas traduit toutes les chaînes. Est-ce vrai?
Est-ce que quelqu’un peut m’aider s’il vous plait? Comment puis-je résoudre ce problème, afin que Lint me montre juste des avertissements à la place? ou une boîte de dialog de confirmation si je suis sûr de vouloir le faire?
Le moyen le plus simple de résoudre le problème consiste à désactiver les contrôles de charpie des traductions manquantes pour les versions de publication uniquement.
Pour ce faire, ajoutez “désactiver ‘MissingTranslation'” dans votre fichier build.gradle comme indiqué ci-dessous:
android { buildTypes { release { lintOptions { disable 'MissingTranslation' } } } }
Pour moi, il semble que Lint empêche l’exportation de l’APK, et que la raison en est que je n’ai pas traduit toutes les chaînes. Est-ce vrai?
Oui. L’option par défaut est lintOptions.abortOnError = true
Est-ce que quelqu’un peut m’aider s’il vous plait?
Vous devez ouvrir le fichier build.gradle
situé dans le module principal du projet ou le dossier générique si vous ne possédez pas de module. Ajoutez ensuite les lignes suggérées:
android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } }
Certains avertissements de Lint sont par défaut tournés en studio en tant qu’erreurs, je ne sais pas pourquoi, mais en termes de traductions, je suppose que c’est un moyen “d’arrêter” de publier une application dont la traduction est incomplète à la dernière minute de certains textes.
Avec lintOptions checkReleaseBuilds abortOnError
vous définissez la vérification de Lint pour ne pas exécuter pour les versions de version et pour ne pas arrêter si une “erreur” est trouvée. Ci-dessous, j’explique où les parameters des erreurs de peluches peuvent être trouvés, donc si vous voulez aller plus loin, vous pouvez faire un pas en avant et les lire un par un. Certains d’entre eux fournissent des instructions utiles pour l’optimisation du code.
Comment puis-je résoudre ce problème, afin que Lint me montre juste des avertissements à la place? ou une boîte de dialog de confirmation si je suis sûr de vouloir le faire?
Il existe également une option dans les parameters d’Android Studio pour modifier toute erreur de Lint en avertissement Lint, mais je ne teste jamais cela. Je me tourne généralement vers la solution graduelle.
L’option est située dans Settings
> Inspections
> Android Lint
. Pour faciliter la recherche des parameters ouverts et à la recherche (située en haut), tapez la Lint translation
, vous pouvez modifier les options de traduction qui apparaissent à gauche des erreurs aux avertissements.
Une autre option si vos chaînes d’erreur ne seront jamais traduites consiste à append à vos tools:ignore="MissingTranslation"
fichiers de chaînes XML tools:ignore="MissingTranslation"
à la racine ou à chaque chaîne non traduisible.
Un moyen simple de résoudre cette erreur
Ajoutez simplement le code suivant pour append “désactiver ‘MissingTranslation'” à votre fichier build.gradle comme indiqué ci-dessous:
... android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false } } ...
OU Vous pouvez également append ceci:
android { buildTypes { release { lintOptions { disable 'MissingTranslation' } } } }
Vous pouvez essayer d’ouvrir “Editeur de traductions” et définir la chaîne “…” comme “non sélectionnable”. Vous devez également supprimer toutes les traductions de cette chaîne.
FWIW: Si vous ne prévoyez pas de prendre en charge d’autres langues, vous n’avez pas besoin de désactiver les chèques de charpie. Parfois, la configuration de votre projet (ou une bibliothèque que vous importez) peut avoir accidentellement – ou intentionnellement – inclus une configuration pour prendre en charge des langues supplémentaires en déclarant un dossier de valeurs pour cette langue, par exemple:
C’était le cas pour moi alors j’ai simplement enlevé le dossier. Mais si vous n’avez aucun contrôle sur la bibliothèque incriminée, vous pouvez désactiver l’option lint abortOnError, comme indiqué dans la réponse acceptée, ou trouver un moyen d’exclure les dossiers “library-importés” d’une manière ou d’une autre. Pour cette dernière option, vous pouvez commencer ici
il y a beaucoup de solution mais j’ai essayé
hello
C’est l’atsortingbut ignore de l’espace de noms des outils dans votre fichier de chaînes, comme suit:
et de la Gradle
release { lintOptions { disable 'MissingTranslation' } }
et
android { lintOptions { disable 'MissingTranslation' } }