7
votes

CHMOD a échoué: Eperm (opération non autorisée) dans Android?

Je souhaite créer une base de données dans SDCard ou SDCard externe pour cela, j'ai essayé ce code et utiliser cette base de données, j'ai créé avec succès la base de données dans SDCard, mais dans LOGCAT, cela me donne un avertissement comme ci-dessous

logcat

07-18 14: 18: 22.140: W / FileTils (8595): Échec de chmod (/ mnt / sdcard / picmedia / db_pmd): libcore.io.errnoException: chmod Échec: EPERM (opération non autorisée)

db_helper.java xxx


0 commentaires

4 Réponses :


-1
votes

Vous devez changer le propriétaire (CHOWN) de ce dossier. Actuellement, l'application / vous n'est pas le propriétaire de ce dossier dans l'endroit où vous souhaitez installer le DB.

Vous devez donc faire quelque chose comme xxx


0 commentaires

0
votes

hier, j'ai rencontré le même problème comme Mahesh (apparaître Même message de warn, insérer des données de SQL Server à SQLite, 2 tables doivent recevoir des données dans SQLite, mais seulement 1 table reçue, une autre table est vide).

Mais aujourd'hui, j'essaie d'insérer des données de SQL Server dans 2 tables de SQLite dans la carte SD à nouveau, cette fois, 2 table reçue des données.

La seule différence est le réglage de l'émulateur.

Agrandir le réglage de l'espace de carte SD, de quelques MB à 8 Go, image de référence. Photo de réglage de l'émulateur

Bien que l'avertissement apparaisse également, mais insérant un succès de travail.


0 commentaires

3
votes

Il suffit de résoudre ce problème.

Vous devez laisser votre application rejoindre Linux Build pour accorder la permission du système informatique. P>

  1. Ajouter cette ligne dans Android.MK P>

    local_certificate: = plate-forme code> p> li>

  2. ajoutez ceci en nœud manifeste de androidmanifest.xml code> p>

    Android: Shareduserid = "android.uid.system" code> p> li>

  3. générer apk et poussez-le dans / Système / App / P> Li>

  4. Vous pouvez maintenant essayer d'exécuter p>

    File file = new File("/data/ena");
    if (file.exists()) {
        boolean result = file.setExecutable(true);
        Log.e(TAG, "trpb67, RESULT IS " + result);
    }
    


0 commentaires

0
votes

Vérifiez si votre appareil est connecté en mode USB MTP. Parfois, une connexion précédente du mode MTP peut causer ce problème. Il suffit de redémarrer le périphérique et de vérifier si cela fonctionne.


0 commentaires