У мене також виникла ця проблема з моїм додатком Android, залежно від деяких моїх власних бібліотек Android (використовуючи Android Studio 3.0 та 3.1.1).
Щоразу, коли я оновлював lib і повертався до програми, запускаючи Gradle Sync, Android Studio не міг виявити зміни коду, які я вніс у lib. Компіляція спрацювала нормально, але Android Studio показала червоні рядки помилок на деякому коді за допомогою lib.
Після дослідження я виявив, що це тому, що gradle продовжує вказувати на стару складену версію моїх ліб. Якщо ви перейдете до yourProject / .idea / libraries /, ви побачите список xml-файлів, що містить посилання на скомпільовану версію ваших бібліотек. Ці файли починаються з Gradle__artifacts _ *. Xml (де * - назва ваших ліфтів).
Тож для того, щоб Android Studio взяв останню версію своїх лійб, потрібно видалити ці файли Gradle__artifacts _ *.
Якщо ви не хочете робити це вручну кожного разу, коли натискаєте кнопку "Синхронізація Gradle" (хто б хотів це зробити ...), ви можете додати це невелике завдання Gradle у файл build.gradle свого додатка.
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()
}
}
}
І для того, щоб ваш додаток завжди виконував це завдання перед синхронізацією gradle, вам просто потрібно перейти до вікна Gradle, а потім знайти завдання "deleteArtifacts" у вашому додатку / Завдання / інше /, клацнути правою кнопкою миші на ньому та вибрати "Виконати Перед синхронізацією "(див. Нижче).
Тепер, кожного разу, коли ви синхронізуєте Gradle, Android Studio буде змушений використовувати останню версію ваших контурів.