J'ai également eu ce problème avec mon application Android en fonction de certaines de mes propres bibliothèques Android (en utilisant Android Studio 3.0 et 3.1.1).
Chaque fois que je mettais à jour une bibliothèque et retournais à l'application, déclenchant une synchronisation Gradle, Android Studio n'était pas en mesure de détecter les modifications de code apportées à la bibliothèque. La compilation fonctionnait bien, mais Android Studio affichait des lignes d'erreur rouges sur certaines parties du code utilisant la bibliothèque.
Après investigation, j'ai découvert que c'est parce que Gradle pointe vers une ancienne version compilée de mes bibliothèques. Si vous allez dans votreProjet/.idea/libraries/, vous verrez une liste de fichiers XML contenant le lien vers la version compilée de vos bibliothèques. Ces fichiers commencent par Gradle__artifacts_*.xml (* étant le nom de vos bibliothèques).
Alors, pour que Android Studio utilise la dernière version de vos bibliothèques, vous devez supprimer ces fichiers Gradle__artifacts_*.xml, et Android Studio les régénérera, pointant vers la dernière version compilée de vos bibliothèques.
Si vous ne voulez pas le faire manuellement à chaque fois que vous cliquez sur "Synchroniser Gradle" (qui voudrait faire ça...), vous pouvez ajouter cette petite tâche Gradle dans le fichier build.gradle de votre application.
task deleteArtifacts {
doFirst {
File librariesFolderPath = file(getProjectDir().absolutePath + "/../.idea/libraries/")
File[] files = librariesFolderPath.listFiles({ File file -> file.name.startsWith("Gradle__artifacts_") } as FileFilter)
for (int i = 0; i < files.length; i++) {
files[i].delete()
}
}
}
Et pour que votre application exécute toujours cette tâche avant de synchroniser Gradle, il vous suffit d'aller dans la fenêtre Gradle, puis de rechercher la tâche "deleteArtifacts" sous votreApp/Tâches/autres/, cliquez avec le bouton droit dessus et sélectionnez "Exécuter avant la synchronisation" (voir ci-dessous).
Maintenant, à chaque fois que vous synchronisez Gradle, Android Studio sera contraint d'utiliser la dernière version de vos bibliothèques.