Problem z Twoim kodem nie że przekazujesz argumenty jako liczby całkowite (nie przekazujesz), ale argumenty nie są rozpoznawane jako TEXT literały, ponieważ nie są ujęte w pojedyncze cudzysłowy, więc SQLite myśli, że są to nazwy kolumn.
Zalecany sposób przekazywania parametrów do rawQuery() jest to:
fun userPresent (user: String, pass: String): Boolean {
val db = writableDatabase
val query = "select * from $TABLE_NAME where username = ? and password = ?"
val cursor = db.rawQuery(query, arrayOf(user, pass))
val result = cursor.count > 0
cursor.close()
db.close()
return result
}
Symbole zastępcze ? pobierze ich wartości z odpowiednich elementów tablicy przekazanej jako drugi argument rawQuery() i nie musisz łączyć pojedynczych cudzysłowów, aby uniknąć ryzyka wstrzyknięcia sql.
Po tym i przed instrukcją return musisz zamknąć oba Cursor i db obiekt.