在安装应用程序崩溃,错误sqlite3_exec - 无法设置同步模式= 1(正常) [英] Application crashes on installation with error sqlite3_exec - Failed to set synchronous mode = 1(Normal)

查看:533
本文介绍了在安装应用程序崩溃,错误sqlite3_exec - 无法设置同步模式= 1(正常)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我跑我的三星笔记应用程序与Android版本4.0.4。

这不是崩溃在其上运行的是Android 2.2三星等持久性有机污染物的设备。而在摩托罗拉Xoom运行Androi 3.1。

当我安装我的应用程序它显示黑屏,然后过一段时间后弹出显示该应用程序是停止的,当我preSS确定该对话框消失,我可以去这个对话框后面我的应用程序启动画面加载我应用程序登录屏幕。

  12-13 18:33:53.823:I / ActivityThread(14608):酒吧com.android.mypype.urbanairship.provider:com.urbanairship.UrbanAirshipProvider
12-13 18:33:53.833:I /内MyPype(14608):应用类
12-13 18:33:54.423:D / myPype  -  UALib(14608):飞艇起飞!库版本:2.0.1 /应用程序键= xsXcmKOoRe6gog9onrQHjA
12-13 18:33:54.423:D / myPype  -  UALib(14608):在生产?假
12-13 18:33:54.713:D / myPype  -  UALib(14608):初始化推送。
12-13 18:33:54.718:D / myPype  -  UALib(14608):初始化分析。
12-13 18:33:54.938:I / SqliteDatabaseCpp(14608):源码返回:错误code = 5,味精=数据库被​​锁定,DB = XXX

    十一月12日至12日:57:09.553:E / SqliteDatabaseCpp(3608):sqlite3_exec  - 无法设置同步模式= 1(正常)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):无法打开数据库。关闭它。
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):android.database.sqlite.SQLiteDatabaseLockedException:数据库已锁定
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.database.sqlite.SQLiteDatabase.dbopen(本机方法)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1132)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1083)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1170)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:844)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:228)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.urbanairship.analytics.EventDataManager< INIT>(来源不明)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.urbanairship.analytics.Analytics< INIT>(来源不明)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.urbanairship.UAirship.takeOff(来源不明)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.android.mypype.MypypeApplication.onCreate(MypypeApplication.java:133)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:972)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.ActivityThread.handleBindApplication(ActivityThread.java:3965)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.ActivityThread.access $ 1300(ActivityThread.java:127)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1196)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.os.Handler.dispatchMessage(Handler.java:99)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.os.Looper.loop(Looper.java:137)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在android.app.ActivityThread.main(ActivityThread.java:4511)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在java.lang.reflect.Method.invokeNative(本机方法)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在java.lang.reflect.Method.invoke(Method.java:511)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:980)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747)
    十一月12日至12日:57:09.553:E / SQLiteDatabase(3608):在dalvik.system.NativeStart.main(本机方法)
    十一月12日至12日:57:09.553:E / myPype  -  UALib(3608):无法打开分析事件数据库


    十一月12日至12日:57:37.958:E / myPype  -  UALib(3608):无法获取数据库的大小。数据库无法打开。
    十一月12日至12日:57:37.963:E / myPype  -  UALib(3608):无法插入事件。数据库无法打开。
 

在上面的错误,为什么它指向的应用类Urbanairship.takeOff()方法。

我在寻找这个问题,但没有得到任何东西。我无法弄清楚。我试图在openHelper CALSS同步对数据库操作的锁。

任何帮助将AP preciated。

在我的应用程序级的我在下面加code为Urbanairship。

  @覆盖
公共无效的onCreate(){
    // TODO自动生成方法存根
    super.onCreate();
//这可以在code来完成如图所示这里,
        //或者你可以将这些设置保存到一个属性文件
        //所谓airshipconfig.properties
        //并把它放在你的资产文件夹
        AirshipConfigOptions选项= AirshipConfigOptions
                .loadDefaultOptions(本);

         //取下初始化服务


        UAirship.takeOff(这一点,选项);

        PushManager.enablePush();
}
 

解决方案

我搞清楚了,但不是解决办法,它只是一个补丁。  我只是处理异常,以便应用程序不能崩溃。

通过这个怎么伤心没有人去真正是为更高版本,如4.0.4。 所以,我有一件事,它可能是Urbairships新库。错,因为它试图写入数据库(我看了一些事件或某事)。

我不知道如何解决,所以我来处理这个异常。

所以,解决办法就是你必须写你的code。在try-catch块,并用于处理捕获指定的异常。

I'm running my application on Samsung Note with android version 4.0.4.

It's not crashing on devices like Samsung POP which is running android 2.2. And on Motorola Xoom running Androi 3.1.

When I'm installing my application It shows black screen then after some time shows popup that application is stop, and my application splash screen loading behind this dialog when I press ok that dialog disappears and I can go to my Application login screen.

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.<init>(Unknown Source)
    12-12 11:57:09.553: E/SQLiteDatabase(3608):     at com.urbanairship.analytics.Analytics.<init>(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.

In above error why It's pointing to Application class Urbanairship.takeOff() method.

I am searching for this issue but doesn't get anything yet. I am not able to figure it out. I tried synchronizing Locks on database operation in openHelper calss.

any help will be appreciated.

In my Application class I added below code to for 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();
}

解决方案

I figure it out but not the solution it's just a fix. I just handle the exception so app can't get crash.

How sad no one went through this actually it's for higher versions such as 4.0.4. So, I got one thing that it may be Urbairships new lib. fault because it's trying to write database (i read some events or something).

I don't understand how to solve so I handled this exception.

So, solution is you have to write your code under try-catch block and specify exception for handling in catch.

这篇关于在安装应用程序崩溃,错误sqlite3_exec - 无法设置同步模式= 1(正常)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆