当我将此代码添加到我的Android 2.1 Java应用程序时,它将失败:

db=SQLiteDatabase.openOrCreateDatabase("Locations", null);


我是否需要获得特殊权限才能创建数据库,或者有人可以提供建议以找出问题所在?

这是LogCat的输出:

04-04 15:04:28.702: DEBUG/ddm-heap(703): Got feature list request
04-04 15:04:29.642: ERROR/Database(703): sqlite3_open_v2("Locations", &handle, 6, NULL) failed
04-04 15:04:29.652: DEBUG/AndroidRuntime(703): Shutting down VM
04-04 15:04:29.662: WARN/dalvikvm(703): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
04-04 15:04:29.662: ERROR/AndroidRuntime(703): Uncaught handler: thread main exiting due to uncaught exception
04-04 15:04:29.702: ERROR/AndroidRuntime(703): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gormtech.zyx.RejseplanQuick/com.xxx.zyx.xxx.HelloAndroid}: android.database.sqlite.SQLiteException: unable to open database file

最佳答案

任何应用程序都可以在没有任何特殊权限的情况下创建SQLiteDatabase。

我对您的代码段有些不满意,因为在我的文档/ SDK中,openOrCreateDatabase(在上下文中)采用三个参数:名称,操作模式和工厂。 https://developer.android.com/reference/android/content/Context.html

看到“ adb logcat”的输出将非常有启发性。从控制台运行adb应用程序,或者在Eclipse中打开LogCat窗口(这可能有助于切换到DDMS透视图)。运行该应用程序,获取故障,然后将后面的行粘贴到此处。

关于java - SQLite数据库创建失败,文档不清楚,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2574324/

10-10 09:09