1 votes

Comment le Android Studio transfère-t-il un dossier vers un appareil ?

Lorsque j'utilise

adb shell "run-as com.example.myapplication push C:\\Users\\x00879271\\Desktop\\ttest /data/data/com.example.myapplication"

Je reçois

run-as: échec de l'exécution de push : Permission refusée.

Et je peux faire glisser le dossier 'ttest' vers /data/data/com.example.myapplication en utilisant Android Studio.

Donc la question est :

  • Comment Android Studio transfère-t-il un dossier vers l'appareil ?
  • Ou comment dois-je transférer un dossier vers /data/data/com.example.myapplication sans utiliser root ?

3voto

pr0nin Points 353

Jetons un coup d'œil attentif à la commande que vous avez exécutée :

adb shell "run-as com.example.myapplication push C:\\Users\\x00879271\\Desktop\\ttest /data/data/com.example.myapplication"

Le principal problème est la partie adb shell au début. Avec cette commande, vous ouvrez un shell sur le périphérique Android. Tout ce qui suit adb shell est exécuté sur votre appareil Android. Par conséquent, spécifier un chemin comme C:\\Users\\x00879271\\Desktop\\ttest qui fait référence à un fichier sur votre PC ne fonctionnera pas car il est exécuté sur Android qui n'a pas accès aux fichiers sur votre PC.

Si vous voulez envoyer un fichier et utiliser run-as, vous ne pouvez pas le faire en une seule commande. Divisez-la en plusieurs commandes :

  1. Envoyez le fichier dans un répertoire commun : adb push C:\\Users\\x00879271\\Desktop\\ttest /sdcard/

  2. Copiez le fichier dans le répertoire de l'application adb shell run-as com.example.app sh -c 'cp /sdcard/ttest /data/data/com.example.myapplication/'

La commande ci-dessus nécessite que la commande cp soit présente sur votre appareil. Sur les anciens appareils, elle est manquante, ce qui vous oblige à utiliser une solution de contournement en utilisant cat : 'cat /sdcard/ttest > /data/data/com.example.myapplication/ttest' pour la dernière partie de la commande.

Si vous êtes intéressé par les commandes que Android Studio exécute lors du chargement d'un fichier par exemple dans l'Explorateur de périphériques, veuillez consulter ma réponse ici.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X