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

时间:2011-09-27 16:30:32

标签: 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

     

// //没有

1 个答案:

答案 0 :(得分:1)

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

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

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

<强> EDIT2:
所以似乎HTC纹身没有sqlite3。