Вопрос по android, urbanairship.com, android-sqlite – Приложение падает при установке с ошибкой sqlite3_exec - Не удалось установить синхронный режим = 1 (Нормальный)

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();
}
Разместите свой код. Вызов UrbanAirship не выполняется. Это общий БД? Коренная причина как-то связана. Я'я никогда не использовал UrbanAirship, но я думаю, что выВызовите init из более чем одного места. Kevin Galligan
Я попытался, добавив проверку, что если БД открыт, то делать операции, если нет, то неНо все же этоs сбой и указывает на Urbanairship.takeOff (). Любой приятель знает об этом случае, если так, пожалуйста, помогите ... MobileEvangelist
Это'Так стыдно, что понимаешь, почему это происходит ... Любыми способами спасибо за помощь. MobileEvangelist
Это'действительно печально, что ни у кого нет ответа на этот вопрос, я много искал. :( MobileEvangelist

Ваш Ответ

1   ответ
0

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

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

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

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

Похожие вопросы