2013-06-18 1 views
1

J'ai une application qui conserve certaines données dans le fichier de base de données sqlite local. Sur un de mes appareils, de temps en temps, essayer de lire ces données conduit à la boîte de dialogue "Chemin de fichier invalide".Chemin de fichier non valide dans la base de données

Le code I utilisé dans SQLiteHelper pour définir le chemin du fichier de base de données:

static String getEnvironmentPath() { 
    if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { 
     return Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "custom.db"; 
    } else { 
     return "custom.db"; 
    } 
} 

En fait, je suis même pas sûr que ce pop-up filepath non valide est indiquée en raison de la base de données, je reçois cette erreur juste à la lecture de certains données de la base de données de temps en temps sur un de mes appareils.

Initialement pensé que mon cas est quelque chose de similaire à How to open pdf file in package path in android?, mais comment se fait que dans le même fichier de base de données 75% des données est bien lu et 25% provoque cette erreur et seulement sur un périphérique?

Qu'est-ce qui pourrait ne pas fonctionner?

Merci!

+0

Quel est exactement le but de l'autre cas? Avez-vous vérifié si l'erreur ne se produit pas lorsque la partie else est exécutée? –

+0

base de données est très bien créé dans d'autres cas, je l'ai vérifié – Roman

+0

Pourquoi n'utilisez-vous pas SQLiteOpenHelper? – vkinra

Répondre

0

Incroyable, mais le fait - la suppression d'Adobe Reader de l'appareil a résolu le problème! Je garde des nouvelles dans mon application, et certaines d'entre elles contiennent des vidéos flash en html, alors Adobe Player a essayé d'ouvrir ceux-ci et provoque cette erreur "Invalid path".

0

J'espère que vous avez donné des autorisations dans le fichier manifeste.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

De même, je ne suis pas sûr si getExternalStoragePublicDirectory (...) vous donne le bon chemin. il suffit de débogage et vérifiez si vous obtenez le chemin

/data/data/com.example.program/databases/xxx.db or not ! 
Questions connexes