android - 为什么 getWritableDatabase 在某些设备上崩溃? (sqlite3_open_v2 ... 失败)

标签 android database crash getwritabledatabase forceclose

我的应用程序使用数据库并且在所有 Android 设备上运行良好。

最近一些用户指出它在 HTC Tattoo 上崩溃。我决定试一试,借了一个。

因此,当我调用时出现错误:this.getWritableDatabase();

09-27 18:26:22.292: ERROR/Database(1537): sqlite3_open_v2("/data/data/com.xxx.xxx/databases/radars.db", &handle, 6, NULL) failed
09-27 18:26:22.292: WARN/System.err(1537): android.database.sqlite.SQLiteException: unable to open database file

而且我已经检查过,数据库在设备中:

enter image description here

我真的不明白发生了什么......

非常感谢您的帮助!

编辑:

正如 LAS_VEGAS 所注意到的

# sqlite3 /data/data/com.xxx.xxx/databases/radars.db 

给出这个结果:

sqlite3: not found 

似乎 HTC Tattoo 有严重的 SQL 问题:

adb shell
# cd /system/xbin
# ls | grep sqlite3

//Nothing//

最佳答案

这很奇怪。我认为当您尝试同时从多个线程访问数据库文件时可能会发生这种情况。难道是这样吗?

同样出于测试目的,您是否尝试了 getReadableDatabase(),也许它提供了线索...

编辑:
你可以从远程 shell 访问吗?:
http://developer.android.com/guide/developing/tools/adb.html#sqlite

编辑 2:
所以HTC tattoo好像没有sqlite3。

关于android - 为什么 getWritableDatabase 在某些设备上崩溃? (sqlite3_open_v2 ... 失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572539/

相关文章:

java - jsoup android java.lang.RuntimeException : Unable to find form

java - Facebook 如何在 "Facebook Connect"设置中使用 FB Init 调用设置 Cookie?

PHP - mySQL 数据库一直忽略我查询的第一部分

c - 使用相同程序的单个队列和多个队列不起作用

android - 使用 PSPDFKit 创建 PDF 注释时如何显示自定义 Dialogfragment

java - SharedPreferences 在不重新启动应用程序的情况下不保存

MySQL 错误 : not connected

ios - 将整数上传到 Firebase 数据库 IOS 的按钮

android - 应用程序崩溃并给出运行时错误执行未恢复的 Activity 暂停

android - 如何分析android崩溃时出现的异常的堆栈跟踪