2010-08-13 6 views
0

J'ai construit base de données Sqlite dans l'application Android. J'ai d'abord créé la table main_category dans Sqlite Manager. Ensuite, j'exporte ce fichier dans le dossier brut de mon application. Mon fichier d'exportation est un fichier .sql. Que c'est ici.Base de données Sqlite est verrouillé dans la ligne de commande (shell adb) + Android

CREATE TABLE "main_category" ("_id" INTEGER PRIMARY KEY NOT NULL ,"main_image" TEXT,"word_audio_file" TEXT,"char_audio_file" TEXT,"hash_record" BOOL NOT NULL ,"record" TEXT, "menu" TEXT); 
    INSERT INTO "main_category" VALUES(1,'g_a.png','g_a.mp3','g_a_01.mp3','false',NULL,NULL); 

Alors je lis de mon application à l'aide FileInputStream. code est ici,

InputStream in= new InputStream() { 

       @Override 
       public int read() throws IOException { 
        File sqlfile1 = new File("C://CellCity//workspace//GokiriKidApp//res//raw//main_category.sql"); 
        return 0; 
       } 
      }; 
      try { 

       InputStreamReader isr=new InputStreamReader(in); 
       BufferedReader br=new BufferedReader(isr); 

       SQL_MAIN_CATEGORY= br.readLine(); 
       in.close(); 
       br.close(); 
       isr.close(); 

      } catch (IOException e) { 

       e.printStackTrace(); 
      } 

      Log.i("onCreate", "Database Creation"); 
      String categoryTString=SQL_MAIN_CATEGORY; 
      db.execSQL(categoryTString); 

Alors, quand je lance mon code i a erreur: OutOfMemoryError et base de données de verrouillage dans la ligne de commande (shell adb)

+0

Courez-vous ce code dans une application Android? –

Répondre

1

Vous faites référence à un fichier sur votre ordinateur, et non sur l'appareil Android ici:

File sqlfile1 = new File("C://CellCity//workspace//GokiriKidApp//res//raw//main_category.sql"); 

Si vous avez placé le fichier que vous voulez lire dans le dossier brut, alors vous faites référence à son emplacement sur l'appareil en utilisant openRawResource(R.raw.fileName)

Cela retournera un inputStream que vous pouvez utiliser pour lire le fichier, au lieu de devoir créer vous-même un objet File et un inputStream.

Questions connexes