Ho anche avuto questo problema con la mia app Android a seconda di alcune delle mie librerie Android (utilizzando Android Studio 3.0 e 3.1.1).
Ogni volta che aggiornavo una libreria e torno all'app, attivando una sincronizzazione Gradle, Android Studio non è stato in grado di rilevare le modifiche al codice apportate alla libreria. La compilazione ha funzionato bene, ma Android Studio ha mostrato linee di errore rosse su alcuni codici utilizzando la lib.
Dopo aver indagato, ho scoperto che è perché gradle continua a puntare a una vecchia versione compilata delle mie librerie. Se vai su yourProject / .idea / libraries / vedrai un elenco di file xml che contiene il collegamento alla versione compilata delle tue librerie. Questi file iniziano con Gradle__artifacts _ *. Xml (dove * è il nome delle tue librerie).
Quindi, affinché Android Studio prenda l'ultima versione delle tue librerie, devi eliminare questi file Gradle__artifacts _ *. Xml e Android Studio li rigenererà, indicando l'ultima versione compilata delle tue librerie.
Se non vuoi farlo manualmente ogni volta che fai clic su "Gradle sync" (chi vorrebbe farlo ...), puoi aggiungere questa piccola attività gradle nel file build.gradle della tua app.
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()
}
}
}
E affinché la tua app esegua sempre questa attività prima di eseguire una sincronizzazione gradle, devi solo andare alla finestra Gradle, quindi trovare l'attività "deleteArtifacts" sotto la tua App / Tasks / altro /, fare clic destro su di essa e selezionare "Esegui Before Sync "(vedi sotto).
Ora, ogni volta che esegui una sincronizzazione Gradle, Android Studio sarà costretto a utilizzare l'ultima versione delle tue librerie.