2013-09-11 2 views
0

Я пытаюсь обновить sqlcipher от версии 1.1 до 2.2.2. Новая версия sqlcipher работает отлично в новой установке или когда я запускаю ее из eclipse. Но когда я обновляю приложение, которое ранее использовало v1.1 sqlcipher с новым v2.2.2, библиотека не загружается должным образом. Когда я вызываю SQLiteDatabase.loadLib (это), приложение аварийно завершает работу. я получаю ниже информацию в LogCatОбновление SqlCipher от 1.1 до 2.2.2

09-11 11: 21: 56,887: I/Database (26277): JNI_OnLoad называется

09-11 11: 21: 56,887: I/Database (26277): JNI_OnLoad зарегистрировать методы

09-11 11: 21: 56.887: E/Database (26277): не можете найти SQLiteDatabase.mNativeHandle

09-11 11: 21: 56.887: E/Cursor (26277): Не удается найти net/sqlcipher/database/SQLiteCompiledSql

09-11 11: 21: 56.887: E/Cursor (26277): Не удается найти net/sqlcipher/d atabase/SQLiteQuery

09-11 11: 21: 56,887: E/Cursor (26277): Не удается найти чистый/sqlcipher/базы данных/SQLiteProgram

09-11 11: 21: 56,887: E/Cursor (26277): не удается найти чистый/sqlcipher/базы данных/SQLiteStatement

09-11 11: 21: 56,887: E/CursorWindow (26277): не удается найти сеть/sqlcipher/CursorWindow

09- 11 11: 21: 56.903: W/dalvikvm (26277): threadid = 11: выход с отключенным исключением (группа = 0x40b73930)

обновление: Я использую proguard. когда я выключил proguard, SQLiteDatabase.loadLibs (это) работал нормально. Но на этот раз я не могу открыть зашифрованную базу данных. Я передаю тот же правильный пароль, чтобы открыть базу данных.

09-11 14: 21: 48,950: I/Database (31543): SQLite вернулся: код ошибки = 26, сообщ = файл шифруется или не является базой данных

09-11 14: 21: 48,950 : E/Database (31543): CREATE TABLE android_metadata не удалось

09-11 14: 21: 48.965: E/Database (31543): Не удалось Setlocale() при создании, закрытии к базе данных

09-11 14: 21: 48.965: E/Database (31543): net.sqlcipher.database.SQLiteException: файл зашифрован или не является базой данных

09-11 14: 21: 48.965: E/Database (31543): at net.sqlcipher.database.SQLiteDatabase.native_setLocale (родной метод)

09-11 14: 48: 48.965: E/Database (31543) : at net.sqlcipher.database.SQLiteDatabase.setLocale (SQLiteDatabase.java:2102)

09-11 14: 21: 48.965: E/Database (31543): at net.sqlcipher.database.SQLiteDatabase. (SQLiteDatabase. Java: 1968)

09-11 14: 21: 48,965: Е/База данных (31543): в net.sqlcipher.database.SQLiteDatabase.openDatabase (SQLiteDatabase.java:901)

09-11 14: 21: 48.965: E/База данных (31543): В net.sqlcipher.database.SQLiteDatabase.openOrCreateDatabase (SQLiteDatabase.java:944)

09-11 14: 21: 48.965: E/Database (31543): в net.sqlcipher.database.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:107)

09-11 14: 21: 48,965: Е/База данных (31543): в alc.rhapsody.mdd.database.DatabaseAdapter.openDatabase (DatabaseAdapter.java:234)

09-11 14: 21: 48,965: Е/База данных (31543): в alc.rhapsody.mdd.presenter.SplashViewPresenter.getAdmissionAccess (SplashViewPresenter.java:152)

09-11 14: 21: 48,965: E/База данных (31543): at alc.rhapsody.mdd.presenter.SplashViewPresenter.access $ 2 (SplashViewPresenter.java:99)

09-11 14: 21: 48.965: E/Database (31543): at alc.rhapsody .mdd.presenter.SplashVi ewPresenter $ AdmissionCtrl.doInBackground (SplashViewPresenter.java:235)

09-11 14: 21: 48,965: E/Database (31543): в alc.rhapsody.mdd.presenter.SplashViewPresenter $ AdmissionCtrl.doInBackground (SplashViewPresenter.java : 1)

09-11 14: 21: 48,965: Е/База данных (31543): в android.os.AsyncTask $ 2.call (AsyncTask.java:287)

09-11 14:21: 48.965: E/База данных (31543): по адресу java.util.concurrent.FutureTask.run (FutureTask.java:234)

09-11 14: 21: 48.965: E/Database (31543): at java.util .concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExec utor.java:1080)

09-11 14: 21: 48,965: E/Database (31543): в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:573)

09 -11 14: 21: 48.965: E/Database (31543): at java.lang.Thread.run (Thread.java:856)

ответ

0

У вас есть пароль для файла, кажется, что у вас нету и когда вы это делаете предоставить базу данных также использовать NO_LOCALIZED_COLLATORS во флагах

+0

Я передаю пароль. Как я теперь решил проблему с помощью разработчика sqlcipher. Спасибо за вашу помощь. –

+2

Было бы здорово, если бы вы могли предоставить ссылку или что-то, что разъясняет решение. –

Смежные вопросы