在Blackberry Java中获取Sqlite文件系统错误(12)

时间:2013-09-19 15:36:36

标签: blackberry blackberry-jde

我正致力于跟踪“来电/拨出电话”的应用程序。将调用记录保存到数据库中。应用程序在模拟器中正常工作,但当应用程序在设备上运行时,会抛出错误,如(DatabaseIOException,File System error(12))。

以下是我正在讨论关于应用程序的方案

  

一个。我已经创建了我的数据库类的单例对象,并在应用程序中使用了单例类。

private MobiTracDB() 
    {
        if(!isDBExist())
        {
            createDataBase();
        }
        else
        {
            openDataBase1();
        }
    }

    public static MobiTracDB getMobiTracDB()
        {
            if(msMobiTrackDb == null)
            {
                msMobiTrackDb = new MobiTracDB();
            }

            if(mDb == null)
            {
                try 
                {
                    String myPath = Global.MOBITRACK_DB_FOLDER_PATH + DATABASE_NAME;
                    URI myURI = URI.create(myPath);

                    mDb = DatabaseFactory.openOrCreate(myURI);
                } 
                catch ( Exception e ) 
                {
                    Log.error(" In SigleTon  " , e.toString());
                }
            }

            return msMobiTrackDb;
        }
  

B中。在Singleton DataBase对象创建时,我打开数据库进行添加/删除/更新相关操作,它工作正常。

     

℃。应用程序没有完全关闭,它只是去背景&当应用程序转到后台时,我正在关闭数据库。下次当SingleTon Obj初始化数据库时,Obj将初始化。

  MobiTracDB.getMobiTracDB().closeDataBase1();

public synchronized void closeDataBase1() 
    {
        try 
        {
            if ( mDb != null )
            {
                mDb.close();
            }

            mDb = null;
        } 
        catch ( Exception e ) 
        {
            Log.error(getClass().getName() + " Error in Closing DB " , e.toString());
        }
    }

但是当我在Device上部署这个应用程序时,我得到了 net.rim.device.api.database.DatabaseIOException:文件系统错误(12) 我在Singleton方法中遇到的文件系统错误(12)错误。 mDb为null,重新初始化mDb时出错。

为什么我收到错误。请帮帮我。

0 个答案:

没有答案