Comment résoudre le problème: «Échec de la transmission de la sélection: mémoire insuffisante»


11

Je crée un article dans Stack overflow . Mais comme j'ai trouvé ce site, je décide de poser la même question ici, car j'ai toujours besoin de votre aide.

J'ai effectué les étapes suivantes:

  1. Lancer Eclipse
  2. Allez à: Fenêtre -> Ouvrir la perspective -> Autre ...
  3. Sélectionnez DDMS dans la boîte de dialogue ouverte
  4. Sélectionnez l' onglet " Explorateur de fichiers ".
  5. Appuyez sur " Poussez un fichier sur l'appareil " et sélectionnez la bibliothèque que je souhaite pousser.

    Impossible de pousser la sélection: système de fichiers en lecture seule

  6. Réduisez toutes les fenêtres ouvertes et ouvrez la ligne de commande
  7. Écrire: cd C: \ android \ android-sdk-windows \ platform-tools entrer
  8. Écrire: abd remonter entrer

    Vous verrez le remontage réussi

  9. Maximisez Eclipse et essayez l'étape 5.

    Impossible de pousser la sélection: mémoire insuffisante

Une erreur apparaît! Que faire pour résoudre ce problème ... Veuillez aider.

AJOUTÉE

1) Lorsque j'écris ADB SHELL MOUNT:

rootfs / rootfs ro 0 0 
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0 
none /acct cgroup rw,cpuacct 0 0 
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0 
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,cpu 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0 
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0 
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

2) Shel Prompt commence par: #


2
Les questions de développement sont considérées ici hors sujet selon notre FAQ .
newuser

J'ai lu le mot "Eclipse" donc j'ai voté pour fermer, mais maintenant que j'ai lu le reste du post et le post lié, je commence à penser que c'est un bon exemple de questions que vous obtenez en développant une application qui ne sont pas vraiment une question de développement. Je ne peux pas retirer mon vote serré, mais je peux avertir les autres de ne pas voter si vite.
Lie Ryan

Je suis d'accord avec @Lie qu'il s'agit d'une zone grise. Je dis que cela devrait rester ouvert pour l'instant.
ale

@ViTo Brothers Apoyan: J'ai deux questions 1) Quelle sortie avez-vous lorsque vous le faites adb shell mount(cela vous donnera tous les systèmes de fichiers montés dans l'appareil et leurs options de montage)? 2) lorsque vous le faites adb shell, l'invite du shell commence par #(qui indique que vous êtes root) ou $(qui indique que vous n'êtes pas root)?
Lie Ryan

vous avez également tagué cette question avec l'émulateur android-x86, android-x86 ! = android fonctionnant sur la machine hôte x86. Utilisez-vous réellement android-x86 ou simplement l'émulateur normal?
Lie Ryan

Réponses:


12

Lancez l'émulateur à partir de la ligne de commande afin de pouvoir spécifier une /systemtaille de partition à l'aide de l' -partition-size <MB>option. Par exemple, je l'utilise pour lancer un émulateur exécutant Android 1.6 avec une /systempartition de 512 Mo:

emulator -avd Donut -partition-size 512

... où "Donut" est ce que vous avez nommé votre AVD (vous pouvez vérifier dans le gestionnaire AVD d'Eclipse si vous en avez besoin). Le emulatorbinaire doit se trouver dans votre tools/répertoire au sein de votre installation SDK, ce qui pour vous semble être C:\android\android-sdk-windows\tools, alors assurez-vous d'abord cddans ce répertoire (ou ajoutez-le à votre système %Path%).

Eclipse peut ne pas prendre l'émulateur tout de suite, ou il peut le reconnaître et abandonner la connexion. Si l'une de ces situations se produit, cliquez sur le menu Affichage sous l'onglet Périphériques (la petite flèche à côté du bouton Réduire) et sélectionnez «Réinitialiser adb» pour rétablir la connexion.

Une fois qu'il apparaît dans vos appareils, faites ce que vous essayez de faire plus tôt. Exécutez adb remountpour obtenir la /systempartition en mode lecture-écriture, puis utilisez Eclipse pour pousser le fichier où vous le souhaitez. J'ai testé avec quelques fichiers aléatoires il y a une minute et j'ai pu les pousser /system/xbinsans aucun problème.

Pour référence, voici la taille de la partition et son utilisation /systemsur mon émulateur Donut lorsque je spécifie une partition de 512 Mo:

> adb shell df
...
/system: 508416K total, 61332K used, 447084K available (block size 4096)
...

Mais voici à quoi ça ressemble si je lance sans spécifier de taille:

> adb shell df
...
/system: 65536K total, 61204K used, 4332K available (block size 4096)
...

De plus, vous pouvez définir des options de ligne de commande dans la configuration d'exécution de votre application via Eclipse si vous le souhaitez. Allez dans votre perspective Java, puis sélectionnez Run->Run Configurationsdans la barre de menus. Sélectionnez votre application dans le volet gauche, puis choisissez l'onglet "Cible". En bas se trouve une zone de texte intitulée "Options de ligne de commande d'émulateur supplémentaires", et vous pouvez ajouter -partition-size <MBs>à cette zone de texte afin que l'émulateur lancé lorsque vous exécutez votre application ait une /systempartition plus grande .

Remarque: Vous devrez peut-être ajouter également -no-snapstorageou d'autres options, pour désactiver le chargement de l'instantané existant, sur la ligne de commande. Cela n'a pas fonctionné sans moi pour moi.


Merci beaucoup !!! Vous résolvez mon problème !!! Merci beaucoup !!!!!!!
ViTo Brothers Apoyan

0

La manière la plus simple: redémarrez votre téléphone en mode de récupération, puis montez le système. Vous pouvez maintenant pousser votre fichier sans problème.


Je suppose que vous avez manqué la ligne /dev/block/mtdblock0 /system yaffs2 rw 0 0de la question? Alors, qu'est-ce qui devrait changer lorsque vous le montez depuis la récupération? Complet est plein, vous ne gagnez pas d'espace supplémentaire sur un système de fichiers complet en le montant "d'ailleurs".
Izzy

-2

Comment résoudre le problème: «Échec de la transmission de la sélection: mémoire insuffisante»

Lors de la création d'un nouvel appareil virtuel Android (AVD) .. sur l'onglet CARTE SD, tapez une valeur (100) en Mo.

Vraiment, ça marche pour moi !!


1
Ce n'est pas correct. La création d'une carte SD virtuelle ne vous aidera pas à envoyer des fichiers sur la /systempartition comme le demande la question. Ce sont des zones de stockage totalement indépendantes.
eldarerathis
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.