Я пытаюсь вызвать запрос к базе данных и получить доступ к данным. Запрос работает нормально, и курсор перемещается на первый в android device1, но не в android device2. В device2 это показывает эту ошибку
E/CursorWindow: Failed to read row 0, column -1 from a CursorWindow which has 2 rows, 7 columns.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.stock_design, PID: 25451
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.stock_design/com.example.stock_design.Edit}: java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.access$900(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
Это класс контроллера базы данных
val getEdit:List<Item_Edit> get(){
val db=context.openOrCreateDatabase(REAL_DATABASE, Context.MODE_PRIVATE, null)
val query ="With cte as (SELECT * FROM Transaction_table ORDER BY (CASE WHEN isbn = '$edt_isbn' AND location = '$edt_lc' AND branch = '$edt_br'THEN 2 ELSE 1 END), branch) SELECT T.isbn,T.branch,T.location,T.qty,M.article,M.description,M.price FROM cte T LEFT JOIN Master M WHERE T.isbn = M.isbn"
val cursor = db.rawQuery(query,null)
println(edt_isbn)
if (cursor.moveToFirst()) {
do {
seItem.add(Item_Edit(cursor.getString(cursor.getColumnIndex("branch")),
cursor.getString(cursor.getColumnIndex("location")),
cursor.getString(cursor.getColumnIndex("isbn")),
cursor.getString(cursor.getColumnIndex("article")),
cursor.getString(cursor.getColumnIndex("description")),
cursor.getString(cursor.getColumnIndex("price")),
cursor.getString(cursor.getColumnIndex("qty")) ))
} while(cursor.moveToNext())
}
else{
ck_edt = "false"
}
db.close()
return seItem
}