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 :
-
Envoyez le fichier dans un répertoire commun : adb push C:\\Users\\x00879271\\Desktop\\ttest /sdcard/
-
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.