2012-06-22 1 views
4

J'ai une base de données SQLite dans mon application. Quand je vais vérifier si la base de données est créée ou non dans l'explorateur de fichiers, il n'y a aucun fichier de base de données dans le dossier data. Il ne s'est même pas montré en utilisant la commande adb shell. Cela signifie-t-il que la base de données n'a pas encore été créée? Des suggestions sur la façon de résoudre ce problème?Base de données SQLite ne s'affiche pas dans l'Explorateur de fichiers

+1

Vous ne pouvez pas voir la base de données si vous testez sur un périphérique. Si c'est un émulateur alors peut-être que la base de données n'est pas créée. – Anu

Répondre

6

Si vous utilisez un périphérique réel, vous ne pourrez pas le voir ou y accéder de l'extérieur à moins que vous n'ayez rooté votre téléphone. Si vous utilisez l'émulateur, la vue DDMS vous permettra d'y accéder et de le tirer à partir de là. Ou, vous pourriez avoir un problème avec la création de votre DB. Sans voir votre code, nous ne pouvons pas le dire.

EDIT

Si vous voulez obtenir le fichier hors d'un dispositif réel, vous aurez besoin de mettre en œuvre une méthode pour copier à partir de votre répertoire de données à un endroit où vous avez accès (tels que votre Carte SD). Cela ferait l'affaire:

public void backup() { 
    try { 
     File sdcard = Environment.getExternalStorageDirectory(); 
     File outputFile = new File(sdcard, 
       "YourDB.bak"); 

     if (!outputFile.exists()) 
      outputFile.createNewFile(); 

     File data = Environment.getDataDirectory(); 
     File inputFile = new File(data, "data/your.package.name/databases/yourDB"); 
     InputStream input = new FileInputStream(inputFile); 
     OutputStream output = new FileOutputStream(outputFile); 
     byte[] buffer = new byte[1024]; 
     int length; 
     while ((length = input.read(buffer)) > 0) { 
      output.write(buffer, 0, length); 
     } 
     output.flush(); 
     output.close(); 
     input.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
     throw new Error("Copying Failed"); 
    } 
} 
+0

Oui j'utilise le vrai périphérique Est-il possible de voir la base de données et les tables? – sandee

+0

+1 pour une explication parfaite. –

Questions connexes