You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio应用启动时创建SQLite数据库崩溃问题求助

解决方案
  • 不要直接调用DataBaseHelper的onCreate()方法,这个方法是SQLiteOpenHelper的系统回调方法,手动调用会因缺少必要的数据库连接初始化逻辑导致崩溃,它仅会在数据库首次创建时由系统自动触发。
  • 正确触发数据库创建的方式是调用getWritableDatabase()或getReadableDatabase()方法,这两个方法会自动完成数据库的检查与创建流程,包括触发onCreate()回调。

修改后的代码示例:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    DataBaseHelper dbh = new DataBaseHelper(MainActivity.this);
    // 调用此方法触发数据库创建与打开
    SQLiteDatabase db = dbh.getWritableDatabase();
    // 若无需写入操作,也可使用getReadableDatabase()
    // SQLiteDatabase db = dbh.getReadableDatabase();
}
  • 额外说明:调用getWritableDatabase()时,系统会自动检测目标数据库是否存在:不存在则执行onCreate()创建数据库;已存在则直接打开,不会重复执行创建逻辑,完全符合应用启动时初始化数据库的需求。

内容的提问来源于stack exchange,提问作者Vishnu Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:46:07