您的位置:首页 > 移动开发 > Android开发

android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open dat

2016-05-25 10:54 1716 查看
今天从晚上下了一份Demo源码,导入到Android Studio运行,报出了如下的错误:

Caused by: android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:709)
at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:702)
at com.dm.selectcity.DBHelper.createDataBase(DBHelper.java:101)
at com.dm.selectcity.MainActivity.getCityList(MainActivity.java:256)
at com.dm.selectcity.MainActivity.cityInit(MainActivity.java:208)
at com.dm.selectcity.MainActivity.onCreate(MainActivity.java:154)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
at android.app.ActivityThread.access$800(ActivityThread.java:151) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:135) 
at android.app.ActivityThread.main(ActivityThread.java:5254) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 


在Stack Overflow中查询了相关的问题,有很多同学提出了如下的解决方法:

1. 添加读写权限



2. 修改代码



解决方法有很多,在这里不一一列举,链接如下:
http://stackoverflow.com/questions/17034511/android-database-sqlite-sqlitecantopendatabaseexception-unknown-error-code-14

如上的方法尝试过,都没有解决上述的错误,然后在读Demo里面代码的时候发现了如下问题:



数据库路径与自己工程的报名不一致

在将路径修改为包名后,程序成功运行了!
虽然这是一个小问题,但是反应了程序调试中每个细节都是至关重要的。作为开发者,往往一个小小的忽视会造成大好几个数量级的错误,编写程序需要用心、用细心!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: