这可能是由于SQLite的版本不兼容所致。在Android 9中,SQLite的版本已经更新到了3.24.0,因此需要使用最新版本的SQLiteOpenHelper类来创建本地数据库。以下是一个示例代码:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE mytable (id INTEGER PRIMARY KEY, name TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
在主Activity中,可以通过以下代码来创建或打开数据库:
DBHelper dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
如果不需要写入数据,则可以使用getReadableDatabase()方法来获取只读的数据库连接:
SQLiteDatabase db = dbHelper.getReadableDatabase();