Nous avons un projet Android gradle. Aujourd'hui, je voulais mettre à niveau la version de Android build tools de 20 à 21.0.1, mais l’aapt échoue.
* What went wrong:
Execution failed for task ':myproject-Android:processDebugResources'.
> com.Android.ide.common.internal.LoggedErrorException: Failed to run command:
c:\_DEVELOP\AndroidSDK\sdk\build-tools\21.0.1\aapt.exe package -f --no-crunch -I c:\_DEVELOP\AndroidSDK\sdk\platforms\Android-16\Android.jar -M D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\re
lease\myproject-Android\intermediates\manifests\full\debug\AndroidManifest.xml -S D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\release\myproject-Android\intermediates\res\debug -A D:\_MY_PROJECT\tr
unk\myproject_bin\gradle\build\release\myproject-Android\intermediates\assets\debug -m -J D:\_MY_PROJECT\trunk\myproject_bin\gradle\build\release\myproject-Android\generated\source\r\debug -F D:\_PIVOSC
ORE_P4\trunk\myproject_bin\gradle\build\release\myproject-Android\intermediates\res\resources-debug.ap_ --debug-mode --custom-package com.myproject.app -0 apk --output-text-symbols D:\_MY_PROJECT\trunk\
myproject_bin\gradle\build\release\myproject-Android\intermediates\symbols\debug
Error Code:
255
J'ai eu des avertissements disant:
libpng warning: iCCP: Not recognizing known sRGB profile that has been edited
J'ai corrigé ceux-ci, mais il y en a 6 autres dans la bibliothèque appcompat-v7.
Si je rétablis la version 20 des outils de génération, tout fonctionne correctement.
Quelqu'un at-il rencontré ce problème?
Ceci est causé par un aapt
défectueux. Il y avait un problème similaire dans 21.0.0 aussi (Error Code: -1073741819
). Vous devez mettre à jour build-tools
encore pour le réparer.
Ouvrez le gestionnaire de SDK et installez build-tools 21.1.2
.
Puis changez votre build.gradle pour qu'il ressemble à ceci.
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
Remplacez les numéros de version par les plus récents si nécessaire.
Ancien buildToolsVersion
21.0.2, la version recommandée est 21.1.2 ou ultérieure.
Cela a fonctionné pour moi:
Ce sont des métadonnées ajoutées par des outils tels que Photoshop qui ne sont même pas respectés par Android. Dénudez-le.
brew install exiftool
find . -path '*src/main/res/*' -name '*.png' -exec exiftool -overwrite_original -all= {} \;
Source: https://groups.google.com/forum/#!msg/adt-dev/rjTQ_STR3OE/-UcNQRISTKsJ
P.S. Testé sur Mac uniquement.
Des avertissements sur libpng sont rapportés ici mais peuvent être ignorés
https://code.google.com/p/Android/issues/detail?id=77704
Un membre du projet affirme que la nouvelle version contre laquelle ils ont construit est plus stricte en ce qui concerne le profil de couleur. Ils corrigeront cela dans une prochaine version, mais cela ne devrait pas être un problème.
Et 21.0.2 résout d’autres problèmes.
J'ai trouvé un moyen de supprimer le profil de couleur des fichiers png pour éviter cet avertissement en utilisant pngcrush Wikipedia à propos de pngcrush .
Si vous travaillez sur MacOS, vous pouvez également utiliser un outil appelé ImageOptim pour exécuter pngcrush et remplacer les fichiers .png supprimés à la volée.
21.0.1 rompt également mon projet - aapt n’ajoutera aucune ressource chaîne au fichier APK. Retourné à 20.0.0, en modifiant project.config:
sdk.buildtools=20.0.0
Si, pour une raison quelconque, il n’est pas pratique de supprimer manuellement les métadonnées des fichiers, vous pouvez désactiver l’utilisation du nouveau et plus strict concasseur png en définissant les paramètres suivants dans votre build.gradle.
aaptOptions.useNewCruncher = false
J'ai eu le même problème avec les outils de compilation 21.0.0, mais après la mise à jour à 21.0.1, il a été corrigé.
Je recevais les mêmes avertissements et aapt restait bloqué même avec les outils de compilation 22.0.1.J'ai coché l'option Compiler des modules indépendants en parallèle dans les paramètres> compilateur, ce qui a abouti à l'exécution de plusieurs instances d'aapt et à la compilation.