Gradle не может разрешить сгенерированные классы - PullRequest
0 голосов
/ 08 июня 2019

Я использовал привязку данных в моем проекте Android, и он работал безупречно до вчерашнего дня. Я не знаю, что произошло, но теперь не могу скомпилировать мой проект:

error: cannot find symbol class BR

Интересно то, что классы, связанные с привязкой данных, генерируются, как и ожидалось, я могу перейти к BR и просмотреть все переменные там.

Сгенерированные источники находятся в build/generated/source/apt/debug местоположении. Android Studio также отображает папку generatedJava, включая класс BR, следующим образом:

SS from Android Studio

Файл iml содержит следующую запись:

  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
    ...
    <content url="file://$MODULE_DIR$">
      ...
      <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
      ...
    </content>
  </component>

Кажется, все нормально. Я перезапустил AS, сделал недействительным кеш, удалил папку .gradle в проекте, очистил .gradle/caches в домашней папке, но не повезло!

Когда I Clean Project, редактор отображает классы, связанные с привязкой данных (включая BR), красным цветом, как и ожидалось. После того, как я Rebuild Project, это дает мне эту ошибку компиляции, но эти классы теперь разрешены, и я могу перейти к ним с помощью Cmd + click. После того, как они были решены, я пытаюсь пересобрать, сделать и т. Д., Но это всегда дает мне ту же ошибку компиляции.

Я потратил часы на эту глупую проблему, любая помощь очень ценится.

PS: Проблема кажется очень похожей с этим , но он очень старый (то есть gradle и плагины не обновлены), а также в комментариях говорится, что классы привязки данных в порядке.

1 Ответ

0 голосов
/ 08 июня 2019

Окно сборки показывало одну ошибку, которую я включил в вопрос.Из терминала я попытался ./gradlew :app:build, и он выдал мне еще одну ошибку, как показано ниже:

Not sure how to handle insert method's return type.

Я добавил метод к Dao из Room, но тип возвращаемого значения не подходит.Это была ошибка.После того, как я это исправил, другая ошибка исчезла.

...