Приложение падает при установке с ошибкой sqlite3_exec - Не удалось установить синхронный режим = 1 (Нормальный)

Я запускаю свое приложение на Samsung Note с версией Android 4.0.4.

Это'не сбой на устройствах, таких как Samsung POP, на котором работает Android 2.2. А на Motorola Xoom работает Андрои 3.1.

Когда я'Установка моего приложения. Он показывает черный экран, затем через некоторое время появляется всплывающее окно, показывающее, что приложение остановлено, и заставка моего приложения загружается за этим диалоговым окном, когда я нажимаю кнопку ОК, этот диалог исчезает, и я могу перейти к экрану входа в приложение.

12-13 18:33:53.823: I/ActivityThread(14608): Pub com.android.mypype.urbanairship.provider: com.urbanairship.UrbanAirshipProvider
12-13 18:33:53.833: I/Inside MyPype(14608):  Application Class
12-13 18:33:54.423: D/myPype - UALib(14608): Airship Take Off! Lib Version: 2.0.1 / App key = xsXcmKOoRe6gog9onrQHjA
12-13 18:33:54.423: D/myPype - UALib(14608): In Production? false
12-13 18:33:54.713: D/myPype - UALib(14608): Initializing Push.
12-13 18:33:54.718: D/myPype - UALib(14608): Initializing Analytics.
12-13 18:33:54.938: I/SqliteDatabaseCpp(14608): sqlite returned: error code = 5, msg = database is locked, db=xxx

    12-12 11:57:09.553: E/SqliteDatabaseCpp(3608): sqlite3_exec - Failed to set synchronous mode = 1(Normal) 
    12-12 11:57:09.553: E/SQLiteDatabase(3608): Failed to open the database. closing it.
    12-12 11:57:09.553: E/SQLiteDatabase(3608): android.database.sqlite.SQLiteDatabaseLockedException: database is locked
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1132)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1083)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1170)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:844)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:228)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.urbanairship.analytics.EventDataManager.(Unknown Source)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.urbanairship.analytics.Analytics.(Unknown Source)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.urbanairship.UAirship.takeOff(Unknown Source)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.android.mypype.MypypeApplication.onCreate(MypypeApplication.java:133)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:972)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3965)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.ActivityThread.access$1300(ActivityThread.java:127)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.os.Handler.dispatchMessage(Handler.java:99)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.os.Looper.loop(Looper.java:137)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at android.app.ActivityThread.main(ActivityThread.java:4511)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at java.lang.reflect.Method.invokeNative(Native Method)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at java.lang.reflect.Method.invoke(Method.java:511)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at dalvik.system.NativeStart.main(Native Method)
    12-12 11:57:09.553: E/myPype - UALib(3608): Unable to open Analytics Event DB


    12-12 11:57:37.958: E/myPype - UALib(3608): Unable to get DB size. Database not open.
    12-12 11:57:37.963: E/myPype - UALib(3608): Unable to insert event. Database not open.

В вышеприведенной ошибке почемууказывает на метод класса Urbanairship.takeOff ().

Я ищу эту проблему, но неничего еще не получил. Я не в состоянии понять это. Я попытался синхронизировать блокировки при работе с базой данных в openHelper calss.

любая помощь будет оценена.

В своем классе приложений я добавил ниже код для Urbanairship.

  @Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
// This can be done in code as illustrated here,
        // or you can add these settings to a properties file
        // called airshipconfig.properties
        // and place it in your "assets" folder
        AirshipConfigOptions options = AirshipConfigOptions
                .loadDefaultOptions(this);

         // Take off initializes the services


        UAirship.takeOff(this, options);

        PushManager.enablePush();
}
 MobileEvangelist14 дек. 2012 г., 14:47
Это'действительно печально, что ни у кого нет ответа на этот вопрос, я много искал. :(
 Kevin Galligan21 дек. 2012 г., 00:05
Разместите свой код. Вызов UrbanAirship не выполняется. Это общий БД? Коренная причина как-то связана. Я'я никогда не использовал UrbanAirship, но я думаю, что выВызовите init из более чем одного места.
 MobileEvangelist14 дек. 2012 г., 08:56
Я попытался, добавив проверку, что если БД открыт, то делать операции, если нет, то неНо все же этоs сбой и указывает на Urbanairship.takeOff (). Любой приятель знает об этом случае, если так, пожалуйста, помогите ...
 MobileEvangelist17 дек. 2012 г., 10:24
Это'Так стыдно, что понимаешь, почему это происходит ... Любыми способами спасибо за помощь.

Ответы на вопрос(1)

Решение Вопроса

Я понимаю это, но не решение этоЭто просто исправление. Я просто обработал исключение, чтобы приложение моглоне получить крах.

Как грустно, что никто не прошел через это на самом деле этоs для более высоких версий, таких как 4.0.4. Итак, я понял, что это может быть новая библиотека. вина, потому что этоs пытается написать базу данных (я прочитал некоторые события или что-то).

Я неЯ не понимаю, как решить, поэтому я обработал это исключение.

Итак, решение заключается в том, что вы должны написать свой код в блоке try-catch и указать исключение для обработки в catch.

Ваш ответ на вопрос