También tuve este problema con mi aplicación de Android dependiendo de algunas de mis propias bibliotecas de Android (usando Android Studio 3.0 y 3.1.1).
Cada vez que actualizaba una biblioteca y volvía a la aplicación, lo que activaba una sincronización de Gradle, Android Studio no podía detectar los cambios de código que hice en la biblioteca. La compilación funcionó bien, pero Android Studio mostró líneas de error rojas en algún código usando la biblioteca lib.
Después de investigar, descubrí que es porque gradle sigue apuntando a una versión compilada antigua de mis bibliotecas. Si va a yourProject / .idea / libraries / verá una lista de archivos xml que contiene el enlace a la versión compilada de sus bibliotecas. Estos archivos comienzan con Gradle__artifacts _ *. Xml (donde * es el nombre de sus bibliotecas).
Entonces, para que Android Studio tome la última versión de sus bibliotecas, debe eliminar estos archivos Gradle__artifacts _ *. Xml, y Android Studio los regenerará, apuntando a la última versión compilada de sus bibliotecas.
Si no desea hacer eso manualmente cada vez que hace clic en "Sincronización de Gradle" (quién querría hacer eso ...), puede agregar esta pequeña tarea de Gradle en el archivo build.gradle de su aplicación.
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()
}
}
}
Y para que su aplicación siempre ejecute esta tarea antes de hacer una sincronización de Gradle, solo necesita ir a la ventana de Gradle, luego encontrar la tarea "deleteArtifacts" en yourApp / Tasks / other /, haga clic derecho sobre ella y seleccione "Ejecutar Before Sync "(ver más abajo).

Ahora, cada vez que hagas una sincronización de Gradle, Android Studio se verá obligado a usar la última versión de tus bibliotecas.