Пустое исключение SQLiteException при использовании Room для определенных уровней APIAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Пустое исключение SQLiteException при использовании Room для определенных уровней API

Сообщение 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
}
}
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... api-levels
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»