Конфликт библиотеки Android Room с библиотекой Requery Sqlite

#android #database #annotations #room

#Android #База данных #аннотации #комната

Вопрос:

У меня уже используется большой проект, существует много (сотен) классов. Я хочу добавить функцию, например, я хочу записать в базу данных SQL телефона. И я хочу использовать библиотеку Android Room. Я все делаю нормально в соответствии с документацией и другими надежными источниками. Однако, когда я пишу класс базы данных, который содержит аннотацию @Database, он выдает мне ошибку «не удается найти класс символов», которая не связана с кодом, который я пишу, который был написан несколько месяцев назад. Если я удалю аннотацию @Database, она будет компилироваться и работать нормально. Не могли бы вы помочь решить эту проблему, потому что я не нашел случая, подобного этому?

Теперь я прояснил реальный конфликт. Дело в том, что ранее в этом проекте использовалась «библиотека requery sqlite», и теперь существует конфликт между этой библиотекой и библиотекой room.

строка @Database(entities = [LocationEntity::class], version = 1) выдает ошибку объекта «ChargeItem», который используется в библиотеке Requery Sqlite

Этот ChargeItem — это класс, написанный для библиотеки requery.

Ответ №1:

   implementation 'androidx.room:room-runtime:2.2.5'
  
  

убедитесь, что у вас есть эти две зависимости.Синхронизация Gradle.
Кроме того, убедитесь, что вы перешли в библиотеку поддержки androidx.

Это будет ваш параметр состояния импорта для аннотации:

   import androidx.room.Database;
  

Комментарии:

1. Однако, спасибо, у меня уже есть эти строки правильно в моей реализации. @Database создает проблему с совершенно другим файлом класса. У вас нет других предложений?

2. можете ли вы объяснить подробнее и сообщить мне, какую ошибку вы получаете??

3. Я написал более подробную информацию в вопросе. Не могли бы вы посмотреть и предложить что-нибудь?

4. Вы не объясняете четко, где произошла ваша ошибка. Не объединяйте свой вопрос и код, например, публикуйте Stacktrace, фрагменты кода, которые приводят к ошибке.

5. ошибка, которую я вижу: app: kaptDebugKotlin, когда я выбираю эту ошибку, она показывает, что не удается найти класс символов «SomeItemClass ранее использовался»