我可以使用以下代码从主应用程序活动中打开数据库,但是一旦将其包装为一个单例对象,它就会不断抛出空对象错误:
object CommonClass {
fun openSQLDatabase(): SQLiteDatabase? {
var dbase: SQLiteDatabase? = null
try {
dbase = openOrCreateDatabase(
"dbfile.sqlite",Context.MODE_PRIVATE,null
)
} catch (e: SQLException) {
println(e.message)
}
return dbase
}
}
我假设主要的 AppCompatactivity 应该以某种方式将其上下文传递给对象,但是我无法找到有效的模型。
到Swayangjit
Android Studio突出显示 Context.MODE_PRIVATE 参数并将其标记为:
Type mismatch.
Required: SQLiteDatabase.CursorFactory?
Found: Int
但是当我将 AppCompatactivity 实现到单例对象并从主活动传递 Context.MODE_PRIVATE 时,它会运行,但会引发以下错误:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String,int,android.database.sqlite.SQLiteDatabase$CursorFactory)' on a null object reference