Récemment, j'ai mis à jour Android Studio avec sa dernière version et je rencontre maintenant un mal de tête avec une exception dans la version Gradle.
Chaque fois que j'exécute le projet, deux ou trois fois avant qu'il ne réussisse, j'obtiens le message d'erreur suivant:
Gradle: Execution failed for task ': ProjectName:
mergeDebugResources'.
Java.lang.NullPointerException (no error message)
Après plusieurs tentatives, l'erreur ne se reproduit pas avant la prochaine exécution.
Quelqu'un a-t-il une idée de la raison pour laquelle cela se produit? Le projet a fonctionné jusqu'à la mise à jour, jamais eu d'erreur auparavant ...
Merci!
J'ai trouvé une solution au problème.
Un problème a été signalé concernant les problèmes de construction de Gradle. Ce n'est pas la même chose, mais la solution semble également résoudre les problèmes de fusion. (issue here https://code.google.com/p/Android/issues/detail?id=56158 ). Dans les commentaires, il est indiqué que la solution est résolue dans Gradle 0.4.3.
Pour utiliser Gradle 0.4.3, le fichier build.gradle doit être mis à jour manuellement. (La mise à jour d'Android Studio ne modifie pas le fichier de construction)
Voici ce que j'ai changé dans build.gradle:
dependencies {
classpath 'com.Android.tools.build:gradle:0.4.3'
}
Depuis que j'ai changé cela, je n’ai plus vu de problèmes de fusion/imitation de ressources lors de l’exécution de mon projet. J'espère que cela t'aides!
Modifier: pour rester à jour avec Gradle, vous pouvez modifier le numéro de version à 0.4.
Cela ne m'arrive que lors de la modification des fichiers XML du projet. Si vous reconstruisez l'intégralité du projet avant de l'exécuter (Build> Rebuild Project), il ne s'affiche plus.
dans le répertoire de votre projet, exécutez:
./gradlew clean build
ou depuis Android Studio, sélectionnez:
Build > Clean Project
Mise à jour: comme l'a souligné @VinceFior dans un commentaire ci-dessous
Vous pouvez avoir un fichier .9.png corrompu dans votre répertoire drawables
Cette erreur peut également se produire si le chemin du fichier de génération généré dépasse la longueur maximale du chemin Windows de 255 caractères. Assurez-vous que le chemin du projet n’est pas trop long, utilisez également des noms courts.
Cela se produirait également s’il existe un ou plusieurs dossiers/fichiers supplémentaires dans le dossier de ressources non pris en charge par Android.
Il existe une nouvelle tâche Gradle appelée "cleanBuildCache". Il suffit d’exécuter cette tâche pour nettoyer le cache, puis reconstruire le projet.
Je viens de mettre à niveau la dernière version de l'outil de création de Gradle et cela fonctionne.
classpath 'com.Android.tools.build:gradle:3.0.1
Mon problème résoudre celui-ci
compile fileTree(dir: 'libs', include: ['*.jar'])
à
provided fileTree(dir: 'libs', include: ['*.jar'])
Dans mon cas, aucun des travaux ci-dessus ne fonctionne, je viens de renommer le nom du projet, tout fonctionne bien.
Exemple:
Mon nom de projet Avant - collants-en-têtes-recyclerview-master
Mon nom de projet Après -SHRV
J'espère que ceci vous aidera.
Dans mon cas, quand j'ai changé nom du paquet ce problème est apparu, j'ai juste suivi les étapes ci-dessous pour résoudre mon problème:
Suppression de l'apk précédemment installé (désinstallation)
Projet appliqué propre
Lancer l'application
J'ai eu le même problème et j'ai réussi à le résoudre, il suffit simplement de rétrograder votre version de gradle comme ceci:
dependencies {
classpath 'com.Android.tools.build:gradle:YOUR_GRADLE_VERSION'
}
à
dependencies {
classpath 'com.Android.tools.build:gradle:OLDER_GRADLE_VERSION_THAT_YOUR'
}
par exemple:
YOUR_GRADLE_VERSION = 3.0.0
OLDER_GRADLE_VERSION_THAT_YOUR = 2.3.2
Cela pourrait être un nom de fichier défectueux. J'avais une image que j'utilisais qui s'appelait Untitled
. Changer le nom a résolu mon problème.
Devait changer la version des outils de construction d'une ancienne version dans build.gradle
pour projet module :
Android {
...
buildToolsVersion "24.0.2"
...
}
Dans mon cas, je viens de supprimer l’espace du nom du dossier du projet De: MyApp
À: MyApp_latest
et cela a fonctionné.