Vamos a analizar de cerca el comando que has ejecutado:
adb shell "run-as com.example.myapplication push C:\\Users\\x00879271\\Desktop\\ttest /data/data/com.example.myapplication"
El problema principal es la parte adb shell
al principio. Con este comando abres un shell en el dispositivo Android. Todo lo que sigue después de adb shell
se ejecuta en tu dispositivo Android. Por lo tanto, especificar una ruta como C:\\Users\\x00879271\\Desktop\\ttest
que se refiere a un archivo en tu PC no funcionará porque se ejecuta en Android, que no tiene acceso a los archivos de tu PC.
Si quieres empujar un archivo y usar run-as, no puedes hacerlo en un solo comando. Divídelo en varios comandos:
-
Empuja el archivo a un directorio común: adb push C:\\Users\\x00879271\\Desktop\\ttest /sdcard/
-
Copia el archivo al directorio de la aplicación adb shell run-as com.example.app sh -c 'cp /sdcard/ttest /data/data/com.example.myapplication/'
El comando anterior requiere que el comando cp
esté presente en tu dispositivo. En dispositivos más antiguos, falta, lo que te obliga a usar un método alternativo usando cat
: 'cat /sdcard/ttest > /data/data/com.example.myapplication/ttest'
para la última parte del comando.
Si estás interesado en saber qué comandos realiza Android Studio al subir un archivo, por favor ve mi respuesta aquí.