Я получаю эту ошибку при загрузке приложения:
2024-10-29 13:29:19.532 3647-3854 SQLiteLog org.druidanet.druidnet E (1)
2024-10-29 13:29:19.727 3647-3647 AndroidRuntime org.druidanet.druidnet E FATAL EXCEPTION: main
Process: org.druidanet.druidnet, PID: 3647
android.database.sqlite.SQLiteException: no such column: TRUE (Sqlite code 1): , while compiling: SELECT common_name, plantId, image_path, latin_name,language FROM PlantView ORDER BY common_name, (OS error - 88:Socket operation on non-socket)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:925)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:536)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:603)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:63)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1397)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1367)
at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.query(FrameworkSQLiteDatabase.kt:156)
at androidx.room.RoomDatabase.query(RoomDatabase.kt:484)
at androidx.room.util.DBUtil.query(DBUtil.kt:75)
at org.druidanet.druidnet.data.PlantDAO_Impl$1.call(PlantDAO_Impl.java:47)
at org.druidanet.druidnet.data.PlantDAO_Impl$1.call(PlantDAO_Impl.java:43)
at androidx.room.CoroutinesRoom$Companion$createFlow$1$1$1.invokeSuspend(CoroutinesRoom.kt:129)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
Я попробовал использовать физический планшет с Oreo (уровень API 26) и виртуальную машину с тем же уровнем API, и у меня произошел сбой. Однако на многих других устройствах, таких как Android 11 (уровень API 30), он работает без проблем.
Я создал базу данных, используя Room, и актив для ее инициализации:
@Database(entities = [PlantEntity::class, UsageEntity::class, NameEntity::class, ConfusionEntity::class],
views =[PlantView::class],
version = 1)
abstract class AppDatabase: RoomDatabase() {
abstract fun plantDao(): PlantDAO
companion object {
@Volatile
private var INSTANCE: AppDatabase? = null
fun getDatabase(context: Context): AppDatabase {
return INSTANCE ?: synchronized(this) {
Room.databaseBuilder(
context,
AppDatabase::class.java,
"druid_database"
)
// Wipes and rebuilds instead of migrating if no Migration object.
.fallbackToDestructiveMigration()
.createFromAsset("databases/druid_database.db")
.build()
.also {
INSTANCE = it
}
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... api-levels
Пустое исключение SQLiteException при использовании Room для определенных уровней API ⇐ Android
Форум для тех, кто программирует под Android
1730206871
Anonymous
Я получаю эту ошибку при загрузке приложения:
2024-10-29 13:29:19.532 3647-3854 SQLiteLog org.druidanet.druidnet E (1)
2024-10-29 13:29:19.727 3647-3647 AndroidRuntime org.druidanet.druidnet E FATAL EXCEPTION: main
Process: org.druidanet.druidnet, PID: 3647
android.database.sqlite.SQLiteException: no such column: TRUE (Sqlite code 1): , while compiling: SELECT common_name, plantId, image_path, latin_name,language FROM PlantView ORDER BY common_name, (OS error - 88:Socket operation on non-socket)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:925)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:536)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:603)
at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:63)
at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1397)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1367)
at androidx.sqlite.db.framework.FrameworkSQLiteDatabase.query(FrameworkSQLiteDatabase.kt:156)
at androidx.room.RoomDatabase.query(RoomDatabase.kt:484)
at androidx.room.util.DBUtil.query(DBUtil.kt:75)
at org.druidanet.druidnet.data.PlantDAO_Impl$1.call(PlantDAO_Impl.java:47)
at org.druidanet.druidnet.data.PlantDAO_Impl$1.call(PlantDAO_Impl.java:43)
at androidx.room.CoroutinesRoom$Companion$createFlow$1$1$1.invokeSuspend(CoroutinesRoom.kt:129)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:784)
Я попробовал использовать физический планшет с Oreo (уровень API 26) и виртуальную машину с тем же уровнем API, и у меня произошел сбой. Однако на многих других устройствах, таких как Android 11 (уровень API 30), он работает без проблем.
Я создал базу данных, используя Room, и актив для ее инициализации:
@Database(entities = [PlantEntity::class, UsageEntity::class, NameEntity::class, ConfusionEntity::class],
views =[PlantView::class],
version = 1)
abstract class AppDatabase: RoomDatabase() {
abstract fun plantDao(): PlantDAO
companion object {
@Volatile
private var INSTANCE: AppDatabase? = null
fun getDatabase(context: Context): AppDatabase {
return INSTANCE ?: synchronized(this) {
Room.databaseBuilder(
context,
AppDatabase::class.java,
"druid_database"
)
// Wipes and rebuilds instead of migrating if no Migration object.
.fallbackToDestructiveMigration()
.createFromAsset("databases/druid_database.db")
.build()
.also {
INSTANCE = it
}
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79137256/empty-sqliteexception-when-using-room-for-certain-api-levels[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия