sqlite3_open_v2 ("/ data / data / com.android.packagename / database / dump.sqlite", & handle, 1, NULL) не удалось - PullRequest
7 голосов
/ 30 января 2012

Я работаю с базой данных sqlite .... приложение работает в 2.3 и более поздних версиях ... когда я пытаюсь запустить в 2.2 ... я получил ошибку вроде ....

E/Database(2476):sqlite3_open_v2("/data/data/com.android.packagename/databases/dump.sqlite", &handle, 1, NULL) failed
*В базе данных 1003 * возникли проблемы.

при попытке запустить приложение в версии 2.2.мой logcat показывает

E/Database(2476):sqlite3_open_v2("/data/data/com.android.canadaQbank/databases/dump.sqlite", &handle, 1, NULL) failed
D/asset(2476): Data exceeds UNCOMPRESS_DATA_MAX (4594688 vs 1048576)
D/AndroidRuntime(2476): Shutting down VM
W/dalvikvm(2476): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
D/dalvikvm(2476): GC_FOR_MALLOC freed 6256 objects / 356848 bytes in 165ms
E/AndroidRuntime(2476): FATAL EXCEPTION: main
E/AndroidRuntime(2476): java.lang.Error: Error copying database
E/AndroidRuntime(2476):     at com.android.canadaQbank.DBAdapter.createDataBase(DBAdapter.java:83)
E/AndroidRuntime(2476):     at com.android.canadaQbank.Select.getUsers(Select.java:110)
E/AndroidRuntime(2476):     at com.android.canadaQbank.Select.onCreate(Select.java:92)
E/AndroidRuntime(2476):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(2476):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime(2476):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime(2476):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime(2476):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime(2476):     at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(2476):     at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(2476):     at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(2476):     at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(2476):     at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(2476):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(2476):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(2476):     at dalvik.system.NativeStart.main(Native Method)

Пожалуйста, помогите кому-нибудь ...

Ответы [ 2 ]

12 голосов
/ 09 февраля 2012

У меня тоже такая же проблема: sqlite3_open_v2 не удалось

, но после поиска по этой проблеме я нашел эту ссылку , и я изменил свой код по этой ссылке, и измененный код выглядит так:

public boolean databaseExist()
{
    File dbFile = new File(DB_PATH + DB_NAME);
    return dbFile.exists();
}

надеюсь, что это также поможет решить вашу проблему.:)

1 голос
/ 07 апреля 2012
private boolean checkDataBase(){

    SQLiteDatabase checkDB = null;

    try{
        String myPath = DB_PATH + DB_NAME;
        checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);

    }catch(SQLiteException e){

        //database does't exist yet.

    }

    if(checkDB != null){

        checkDB.close();

    }

    return checkDB != null ? true : false;
}

Вы можете попробовать это, надеюсь, это поможет вам. А также проверьте версию dadabase, которая поддерживается Android 2.2. всего наилучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...