SQLiteCantOpenDatabaseException:未知错误(代码14)无法打开数据库

Totalys

尝试获取可读或可写的数据库时出现此错误。“ SQLiteCantOpenDatabaseException:未知错误(代码14)无法打开数据库”我在SQLiteOpenHelper中遇到了这个奇怪的问题,在这里我已经看到了一些类似的答案,但都没有解决我的问题。像我一样绝望的是,我在下面发布我的代码,希望有人能找到我没有看到的东西...

(一个重要信息:我从另一个正在运行的应用程序中获得了该应用程序。但是,在调试时,我仍然没有更改dbname。它与先前应用程序的名称(ks.db)相同。该数据库存在在我的调试设备上,但tr.db没有)

我的DatabaseHelper类是这样的:

//Singleton
private static DatabaseHelper sInstance;

//Log
private static String TAG = "Database";

private static final String NAME_DB = "tr.db";
private static final String PATH_DB_DEBUG = "/mnt/sdcard/";
private static final int VERSION = 4;

//TABLE NAMES
private static final String TABLE_USERS = "users";
private static final String TABLE_TRACKS = "tracks";
private static final String TABLE_ROTAS = "rotas";
...
/**
     *
     * @param context
     * @return Unique instance of DataBaseHelper
     */
    public static synchronized DatabaseHelper getInstance(Context context) {
        if (sInstance == null) {
            sInstance = new DatabaseHelper(context.getApplicationContext());
        }
        return sInstance;
    }

我的Android清单:

...

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> ...

在主要活动中:

    //DB
    DatabaseHelper database;
...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
...
        //database
        database = DatabaseHelper.getInstance(this.getApplicationContext());
        database.getReadableDatabase(); ( <- Error HERE)

这是完整的错误堆栈:

> 12-13 15:02:43.798    5764-5764/com.snitram.toriders E/SQLiteLog﹕ (14)
> cannot open file at line 31307 of [2ef4f3a5b1] 12-13 15:02:43.798   
> 5764-5764/com.snitram.toriders E/SQLiteLog﹕ (14) os_unix.c:31307: (2)
> open(/storage/emulated/0tr.db) - 12-13 15:02:43.811   
> 5764-5764/com.snitram.toriders E/SQLiteDatabase﹕ Failed to open
> database '/storage/emulated/0tr.db'.
>     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:207)
>             at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
>             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.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:571)
>             at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269)
>             at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
>             at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
>             at com.snitram.toriders.activities.LoginActivity.onCreate(LoginActivity.java:222)
>             at android.app.Activity.performCreate(Activity.java:6245)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
>             at android.app.ActivityThread.-wrap11(ActivityThread.java)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:148)
>             at android.app.ActivityThread.main(ActivityThread.java:5443)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 12-13
> 15:02:43.814    5764-5764/com.snitram.toriders E/SQLiteOpenHelper﹕
> Couldn't open /storage/emulated/0tr.db for writing (will try
> read-only):
>     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:207)
>             at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
>             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.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:571)
>             at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:269)
>             at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
>             at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
>             at com.snitram.toriders.activities.LoginActivity.onCreate(LoginActivity.java:222)
>             at android.app.Activity.performCreate(Activity.java:6245)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
>             at android.app.ActivityThread.-wrap11(ActivityThread.java)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:148)
>             at android.app.ActivityThread.main(ActivityThread.java:5443)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 12-13
> 15:02:43.815    5764-5764/com.snitram.toriders E/SQLiteLog﹕ (14)
> cannot open file at line 31307 of [2ef4f3a5b1] 12-13 15:02:43.815   
> 5764-5764/com.snitram.toriders E/SQLiteLog﹕ (14) os_unix.c:31307: (2)
> open(/storage/emulated/0tr.db) - 12-13 15:02:43.816   
> 5764-5764/com.snitram.toriders E/SQLiteDatabase﹕ Failed to open
> database '/storage/emulated/0tr.db'.
>     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:207)
>             at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
>             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.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:234)
>             at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
>             at com.snitram.toriders.activities.LoginActivity.onCreate(LoginActivity.java:222)
>             at android.app.Activity.performCreate(Activity.java:6245)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
>             at android.app.ActivityThread.-wrap11(ActivityThread.java)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:148)
>             at android.app.ActivityThread.main(ActivityThread.java:5443)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 12-13
> 15:02:43.816    5764-5764/com.snitram.toriders D/AndroidRuntime﹕
> Shutting down VM 12-13 15:02:43.817    5764-5764/com.snitram.toriders
> E/AndroidRuntime﹕ FATAL EXCEPTION: main
>     Process: com.snitram.toriders, PID: 5764
>     java.lang.RuntimeException: Unable to start activity ComponentInfo{com.snitram.toriders/com.snitram.toriders.activities.LoginActivity}:
> android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error
> (code 14): Could not open database
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
>             at android.app.ActivityThread.-wrap11(ActivityThread.java)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:148)
>             at android.app.ActivityThread.main(ActivityThread.java:5443)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
>      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:207)
>             at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:191)
>             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.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:234)
>             at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
>             at com.snitram.toriders.activities.LoginActivity.onCreate(LoginActivity.java:222)
>             at android.app.Activity.performCreate(Activity.java:6245)
>             at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1130)
>             at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
>             at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2490)
>             at android.app.ActivityThread.-wrap11(ActivityThread.java)
>             at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1354)
>             at android.os.Handler.dispatchMessage(Handler.java:102)
>             at android.os.Looper.loop(Looper.java:148)
>             at android.app.ActivityThread.main(ActivityThread.java:5443)
>             at java.lang.reflect.Method.invoke(Native Method)
>             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728)
>             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
Totalys

我将targetSdkVersion从23更改为22后,错误停止显示。此降级强制在设备上卸载软件包,并且在重新安装它时可以正常工作。谢谢Frank N. Stein的帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库

来自分类Dev

android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库仍然无法修复问题

来自分类Dev

SQLite:异常:未知错误(代码14):无法打开数据库

来自分类Dev

SQLite openOrCreateDatabase未知错误(代码14):无法打开数据库

来自分类Dev

Android SQLite DatabaseHelper 未知错误(代码 14):无法打开数据库

来自分类Dev

SQLite错误代码:14,“无法打开数据库文件”

来自分类Dev

SQLite错误代码:14,“无法打开数据库文件”

来自分类Dev

SQLite无法在频繁的“ SELECT”查询中打开数据库文件(代码14)

来自分类Dev

编译时无法打开数据库文件(代码14):PRAGMA journal_mode

来自分类Dev

未知的计算机更新导致“无法打开使用先前版本创建的数据库”错误?

来自分类Dev

无法打开数据库错误

来自分类Dev

Microsoft.Data.Sqlite.SqliteException:'SQLite错误14:'无法打开数据库文件'。

来自分类Dev

没有错误(代码0):无法以读写模式打开数据库

来自分类Dev

SQLite 打开数据库返回错误代码 14 但仅当通过 cp 命令创建 db 文件时

来自分类Dev

出现错误3048:无法打开更多数据库

来自分类Dev

Java SQL Server 2012无法打开数据库错误

来自分类Dev

Java SQL Server 2014无法打开数据库错误

来自分类Dev

Postgres删除数据库错误:pq:无法删除当前打开的数据库

来自分类Dev

内部错误。错误:PleskFatalException:无法连接到数据库:未知数据库'psa'(auth.php:149)

来自分类Dev

Bacula Web:SQLSTATE [HY000] [14]无法打开数据库文件

来自分类Dev

SQLite数据库未打开错误

来自分类Dev

无法打开数据库。登录失败

来自分类Dev

无法打开数据库android Sqlite

来自分类Dev

无法打开数据库进行编写

来自分类Dev

sqlite无法打开数据库

来自分类Dev

无法打开数据库文件

来自分类Dev

实体框架无法打开数据库

来自分类Dev

PDO SQLite无法打开数据库

来自分类Dev

Qt:数据库连接无法打开

Related 相关文章

  1. 1

    android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库

  2. 2

    android.database.sqlite.SQLiteCantOpenDatabaseException:未知错误(代码14):无法打开数据库仍然无法修复问题

  3. 3

    SQLite:异常:未知错误(代码14):无法打开数据库

  4. 4

    SQLite openOrCreateDatabase未知错误(代码14):无法打开数据库

  5. 5

    Android SQLite DatabaseHelper 未知错误(代码 14):无法打开数据库

  6. 6

    SQLite错误代码:14,“无法打开数据库文件”

  7. 7

    SQLite错误代码:14,“无法打开数据库文件”

  8. 8

    SQLite无法在频繁的“ SELECT”查询中打开数据库文件(代码14)

  9. 9

    编译时无法打开数据库文件(代码14):PRAGMA journal_mode

  10. 10

    未知的计算机更新导致“无法打开使用先前版本创建的数据库”错误?

  11. 11

    无法打开数据库错误

  12. 12

    Microsoft.Data.Sqlite.SqliteException:'SQLite错误14:'无法打开数据库文件'。

  13. 13

    没有错误(代码0):无法以读写模式打开数据库

  14. 14

    SQLite 打开数据库返回错误代码 14 但仅当通过 cp 命令创建 db 文件时

  15. 15

    出现错误3048:无法打开更多数据库

  16. 16

    Java SQL Server 2012无法打开数据库错误

  17. 17

    Java SQL Server 2014无法打开数据库错误

  18. 18

    Postgres删除数据库错误:pq:无法删除当前打开的数据库

  19. 19

    内部错误。错误:PleskFatalException:无法连接到数据库:未知数据库'psa'(auth.php:149)

  20. 20

    Bacula Web:SQLSTATE [HY000] [14]无法打开数据库文件

  21. 21

    SQLite数据库未打开错误

  22. 22

    无法打开数据库。登录失败

  23. 23

    无法打开数据库android Sqlite

  24. 24

    无法打开数据库进行编写

  25. 25

    sqlite无法打开数据库

  26. 26

    无法打开数据库文件

  27. 27

    实体框架无法打开数据库

  28. 28

    PDO SQLite无法打开数据库

  29. 29

    Qt:数据库连接无法打开

热门标签

归档