当我将此代码添加到我的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
答案 0 :(得分:2)
任何应用都可以创建没有任何特殊权限的SQLiteDatabase。
我的代码片段有点抛出,因为在我的文档/ SDK中,openOrCreateDatabase(在Context上)有三个参数:name,operating mode和factory。 https://developer.android.com/reference/android/content/Context.html
查看“adb logcat”的输出会非常有启发性。从控制台运行adb应用程序,或在Eclipse中启动LogCat窗口(可能有助于切换到DDMS Perspective)。运行应用程序,获取失败并在此处粘贴后面的行。