Я пытался имитировать код Google для новой библиотеки Paging 3 и столкнулся со следующей ошибкой, когда пытался заставить метод Room DAO возвращать PagingSource:
D:\Programming\Android\something\app\build\tmp\kapt3\stubs\debug\com\someapp\something\data\db\UsersDao.java:38: error: Not sure how to convert a Cursor to this method's return type (androidx.paging.PagingSource).
public abstract androidx.paging.PagingSource getUserByUserName(@org.jetbrains.annotations.NotNull()
^D:\Programming\Android\something\app\build\tmp\kapt3\stubs\debug\com\someapp\something\data\db\UsersDao.java:43: error: Not sure how to convert a Cursor to this method's return type (androidx.paging.PagingSource).
public abstract androidx.paging.PagingSource getUserByNote(@org.jetbrains.annotations.NotNull()
Вот мой UsersDao.kt:
@Dao
interface UsersDao {
@Insert
fun insert(user: GithubUser): Completable
@Insert
fun insert(userList: List): Completable
@Query("DELETE FROM userDb")
fun clearDb(): Completable
@Query("SELECT * FROM userDb")
fun getAllUsers(): Single
@Query("SELECT EXISTS(SELECT 1 FROM userDb WHERE username LIKE :userName)")
fun checkIfUserExists(userName: String): Boolean
@Query("SELECT note FROM userDb WHERE username LIKE :userName")
fun getNoteByUserName(userName: String): Single
@Query("SELECT * FROM userDb WHERE username LIKE :userName")
fun getUserByUserName(userName: String): PagingSource
@Query("SELECT * FROM userDb WHERE note LIKE :note")
fun getUserByNote(note: String): PagingSource
}
Мой GithubUser.kt выглядит так:
@Entity(tableName = "userDb", indices = arrayOf(Index(value = ["username"], unique = true)))
class GithubUser (
var username: String,
var note: String,
var url: String,
var avatarUrl: String
) {
@PrimaryKey(autoGenerate = true)
var uid = 0
}
В коде Paging Codelab метод DAO просто возвращает PagingSource без каких-либо дополнительных аннотаций/магических опций в Gradle или чем-то еще. Я также рассмотрел другие примеры из Github, подобные этому и этому, которые используют библиотеку Paging 3, они просто возвращают PagingSource без каких-либо проблем. Может кто-нибудь сказать мне, если я что-то пропустил?
ПРИМЕЧАНИЕ. Перед самой ошибкой я всегда получаю предупреждение о версии ANTLR Tool 4.5.3, используемой для генерации кода. не соответствует текущей версии среды выполнения 4.7.1, но это предупреждение само по себе не вызывало никаких проблем в прошлом, но я отмечаю его здесь на всякий случай.
< Strong>EDIT: я использую следующие версии библиотеки Room/Paging:
implementation "androidx.room:room-runtime:2.2.5"
kapt "androidx.room:room-compiler:2.2.5"
implementation 'androidx.room:room-rxjava2:2.2.5'
implementation "androidx.paging:paging-runtime:3.0.0-alpha03"
implementation 'androidx.paging:paging-rxjava2:3.0.0-alpha03'
Подробнее здесь: https://stackoverflow.com/questions/633 ... pe-when-us
Paging3: «Не знаю, как преобразовать курсор в тип возвращаемого значения этого метода» при использовании PagingSource в ⇐ Android
Форум для тех, кто программирует под Android
1716667068
Anonymous
Я пытался имитировать код Google для новой библиотеки Paging 3 и столкнулся со следующей ошибкой, когда пытался заставить метод Room DAO возвращать PagingSource:
D:\Programming\Android\something\app\build\tmp\kapt3\stubs\debug\com\someapp\something\data\db\UsersDao.java:38: error: Not sure how to convert a Cursor to this method's return type (androidx.paging.PagingSource).
public abstract androidx.paging.PagingSource getUserByUserName(@org.jetbrains.annotations.NotNull()
^D:\Programming\Android\something\app\build\tmp\kapt3\stubs\debug\com\someapp\something\data\db\UsersDao.java:43: error: Not sure how to convert a Cursor to this method's return type (androidx.paging.PagingSource).
public abstract androidx.paging.PagingSource getUserByNote(@org.jetbrains.annotations.NotNull()
Вот мой UsersDao.kt:
@Dao
interface UsersDao {
@Insert
fun insert(user: GithubUser): Completable
@Insert
fun insert(userList: List): Completable
@Query("DELETE FROM userDb")
fun clearDb(): Completable
@Query("SELECT * FROM userDb")
fun getAllUsers(): Single
@Query("SELECT EXISTS(SELECT 1 FROM userDb WHERE username LIKE :userName)")
fun checkIfUserExists(userName: String): Boolean
@Query("SELECT note FROM userDb WHERE username LIKE :userName")
fun getNoteByUserName(userName: String): Single
@Query("SELECT * FROM userDb WHERE username LIKE :userName")
fun getUserByUserName(userName: String): PagingSource
@Query("SELECT * FROM userDb WHERE note LIKE :note")
fun getUserByNote(note: String): PagingSource
}
Мой GithubUser.kt выглядит так:
@Entity(tableName = "userDb", indices = arrayOf(Index(value = ["username"], unique = true)))
class GithubUser (
var username: String,
var note: String,
var url: String,
var avatarUrl: String
) {
@PrimaryKey(autoGenerate = true)
var uid = 0
}
В коде Paging Codelab метод DAO просто возвращает PagingSource без каких-либо дополнительных аннотаций/магических опций в Gradle или чем-то еще. Я также рассмотрел другие примеры из Github, подобные этому и этому, которые используют библиотеку Paging 3, они просто возвращают PagingSource без каких-либо проблем. Может кто-нибудь сказать мне, если я что-то пропустил?
[b]ПРИМЕЧАНИЕ[/b]. Перед самой ошибкой я всегда получаю предупреждение о версии ANTLR Tool 4.5.3, используемой для генерации кода. не соответствует текущей версии среды выполнения 4.7.1, но это предупреждение само по себе не вызывало никаких проблем в прошлом, но я отмечаю его здесь на всякий случай.
< Strong>EDIT: я использую следующие версии библиотеки Room/Paging:
implementation "androidx.room:room-runtime:2.2.5"
kapt "androidx.room:room-compiler:2.2.5"
implementation 'androidx.room:room-rxjava2:2.2.5'
implementation "androidx.paging:paging-runtime:3.0.0-alpha03"
implementation 'androidx.paging:paging-rxjava2:3.0.0-alpha03'
Подробнее здесь: [url]https://stackoverflow.com/questions/63373069/paging3-not-sure-how-to-convert-a-cursor-to-this-methods-return-type-when-us[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия