解決方法:「選択をプッシュできませんでした:メモリ不足です」


11

スタックオーバーフローで記事を作成します。しかし、このサイトを見つけたので、私は同じ質問をここで行うことにしました。

私は次の手順を実行しました:

  1. Eclipseを起動する
  2. 移動:ウィンドウ->パースペクティブを開く->その他...
  3. 開いたダイアログからDDMSを選択します
  4. ファイルエクスプローラ」タブを選択します。
  5. デバイスにファイルをプッシュする」を押して、プッシュしたいライブラリを選択します。

    選択のプッシュに失敗しました:読み取り専用ファイルシステム

  6. 開いているウィンドウをすべて最小化し、コマンドライン開く
  7. 書き込み:cd C:\ android \ android-sdk-windows \ platform-tools enter
  8. 書き込み:abd remount enter

    再マウントが成功したことがわかります

  9. Eclipseを最大化して、ステップ5を試してください。

    選択のプッシュに失敗しました:メモリ不足です

エラーが表示されます!この問題を解決するために何をすべきか...助けてください。

追加された

1)ADBシェルマウントを作成する場合:

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)シェルプロンプトは次で始まります:#


2
開発に関する質問は、FAQに従って、ここではトピック外と見なされます。
newuser '19年

私は「Eclipse」という言葉を読んだので、これを閉じて投票しましたが、残りの投稿とリンクされた投稿を読んだので、これは開発の問題ではありません。私は自分の最終投票を取り消すことはできませんが、他の人に非常に速く最終投票をしないよう警告することができます。
リーライアン

これが灰色の領域であることは@Lieに同意します。これは今のところ開いたままにしておくべきだと私は言います。
エール

@ViTo Brothers Apoyan:2つの質問があります1)実行するとどのような出力adb shell mountが得られますか(これにより、デバイスにマウントされているすべてのファイルシステムとそのマウントオプションが得られます)?2)実行するadb shellと、シェルプロンプトは#(rootで$あることを示す)または(rootでないことを示す)で始まりますか?
リーライアン

また、この質問にandroid-x86、android-x86!= x86ホストマシンで実行されているandroid emulatorのタグを付けました。実際にandroid-x86を使用していますか、それとも通常のエミュレーターを使用していますか?
リーライアン

回答:


12

オプション/systemを使用してパーティションサイズを指定できるように、コマンドラインからエミュレータを起動し-partition-size <MB>ます。たとえば、これを使用して/system、512 MBのパーティションでAndroid 1.6を実行しているエミュレータを起動します。

emulator -avd Donut -partition-size 512

...「Donut」は、AVDに名前を付けたものです(必要に応じて、EclipseのAVDマネージャで確認できます)。emulatorバイナリは、あなたの中にあるべきtools/あなたのためであるように思われ、インストールあなたのSDK内のディレクトリC:\android\android-sdk-windows\toolsので、必ずなり、cd最初にそのディレクトリに(またはお使いのシステムのにそれを追加します%Path%)。

Eclipseがすぐにエミュレーターを取得しない場合や、エミュレーターがそれを認識して接続をドロップする場合があります。これらのいずれかが発生した場合は、[デバイス]タブの表示メニュー(最小化ボタンの横にある小さな矢印)をクリックし、[Reset adb]を選択して接続を元に戻します。

デバイスに表示されたら、以前に実行しようとしていたことを実行します。実行adb remountして/systemパーティションを読み取り/書き込みモードで取得し、Eclipseを使用してファイルを好きな場所にプッシュします。1分前にいくつかのランダムファイルを使用してテストしました/system/xbinが、問題なくプッシュできました。

参考までに/system、512 MBのパーティションを指定した場合の、ドーナツエミュレータでのパーティションサイズと使用方法は次のとおりです。

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

しかし、サイズを指定せずに起動すると、次のようになります。

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

さらに、必要に応じて、Eclipseを介してアプリケーションの実行構成にコマンドラインオプションを設定できます。Javaパースペクティブに移動しRun->Run Configurations、メニューバーから選択します。左側のペインでアプリケーションを選択し、[ターゲット]タブを選択します。下部には「追加のエミュレータコマンドラインオプション」というラベルの付いたテキストボックスがあり、-partition-size <MBs>そのテキストボックスに追加して、アプリケーションの実行時に起動されるエミュレータの/systemパーティションを大きくすることができます。

注:-no-snapstorage既存のスナップショットのロードを無効にするには、コマンドラインにオプションまたは他のオプションを追加する必要がある場合があります。それなしでは私にはうまくいきませんでした。


本当にありがとうございます !!!あなたは私の問題を解決します!!! どうもありがとう !!!!!!!
ViTo Brothers Apoyan

0

簡単な方法:システムをマウントするよりも、回復モードで電話を再起動します。これで、問題なくファイルをプッシュできます。


私はあなたが/dev/block/mtdblock0 /system yaffs2 rw 0 0質問の行を逃したと思いますか?では、リカバリからマウントするときに何を変更する必要がありますか?フルはフルです。「別の場所から」マウントしてフルファイルシステムに追加のスペースを確保することはできません。
イジー

-2

解決方法:「選択をプッシュできませんでした:メモリ不足です」

新しいAndroid仮想デバイス(AVD)を作成しているときに、SDカードタブに値(100)をMBで入力します。

本当に、それは私のために働きます!!


1
これは正しくありません。仮想SDカードを作成して/systemも、質問のとおりにファイルをパーティションにプッシュすることはできません。それらは完全に無関係なストレージ領域です。
eldarerathis 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.