android数据库错误

问题描述

| 我已经通过SQLiteBrowser程序创建了android数据库,然后将其导入。当我运行代码时,它给出了意外错误。 İ已经取得 我打开android sdk和avg meneger并在模拟器中吃午餐。 然后,将数据库导入到/ data / data / mypackage路径。 在阅读时,我必须将其导入/ data / data / mypackage / databases。但是,当我打开路径mypackage时,只能看到lib文件夹。所以我添加到/ data / data / mypackage中。 我的代码部分是
private static String dbName = \"mobileGuideDatabase.db\";                
private static String dbPath = \"/data/data/de.Guide\" + dbName;

SQLiteDatabase checkDB = null;

try {
  checkDB = db.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException ex) {
  throw ex;
}
那么,本节有什么问题呢?     

解决方法

        您的数据库路径似乎缺少斜杠。现在将是: \“ / data / data / de.GuidemobileGuideDatabase.db \”,但我想您希望它是\“ / data / data / de.Guide / mobileGuideDatabase.db \”     ,        希望您直接在手机上运行,​​手机不允许访问数据文件夹。 创建我们自己的文件夹 将数据库复制到该位置 从该位置打开数据库 供参考
public void createDataBase() throws IOException {   
         String path=mContext.getDir(\"Folder_Name\",Context.MODE_WORLD_WRITEABLE).getAbsolutePath(); 
          DB_PATH=path;  
          boolean mDataBaseExist = checkDataBase();   

          if(!mDataBaseExist)   {     
          try       {       copyDataBase();      }       
          catch (IOException mIOException)       
        {      Log.d(\"Exception\",mIOException.getMessage());    
                throw new Error(\"ErrorCopyingDataBase\");      
        } 
      }  
   }  

   private boolean checkDataBase()  {      
     Log.d(TAG,\"In checkDataBase :::::\"); 
     File dbFile = new File( DB_PATH+DATABASE_NAME);      
     Log.d(\"dbFile\",dbFile + \"   \"+ dbFile.exists());     
     return dbFile.exists();  }   

    //Copy the database from assets  
    private void copyDataBase() throws IOException  {      
      Log.d(TAG,\"In copyDataBase :::::\");      
      InputStream mInput = mContext.getAssets().open(DB_NAME);     
      String outFileName = DB_PATH  + DATABASE_NAME;      
      Log.d(TAG,\"In copyDataBase  outFileName:::::\"+outFileName);      
      OutputStream mOutput = new FileOutputStream(outFileName);      
      byte[] mBuffer = new byte[1024];      int mLength;      

      while ((mLength = mInput.read(mBuffer))>0)      {         
        mOutput.write(mBuffer,mLength);      
      }     

        mOutput.flush();      
       mOutput.close();     
       mInput.close();  
   }   

     //Open the database,so we can query it  
   public boolean openDataBase() throws SQLException  {      
    //DB_PATH +     String mPath = DB_PATH+ DATABASE_NAME;      
     Log.v(\"mPath\",mPath);      
     mDataBase = SQLiteDatabase.openDatabase(mPath,null,SQLiteDatabase.CREATE_IF_NECESSARY);      
      return mDataBase != null;  
   }  
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...