2012-02-17 21 views
1

私のデバイス(「HTC Wildfire S」、「Android 2.3.5」)に「ファイルが多すぎます」というエラーが頻繁に表示されます。私はすでにメモリリークがあるかもしれないいくつかのトピックを発見しました。問題はどのように問題をデバッグするのですか?どのプロセスがファイルディスクリプタを消費していて、それを解放していないかを見つける方法開いているファイルが多すぎますエラー - デバッグ

私のデバイスはroot-edではありません - オープンされたディスクリプタに関する情報をrootでないデバイスで取得する方法を知りたいと思います。これが不可能な場合は、アンドロイドエミュレータでそのようなデータを取得する方法を教えてください。

+0

EclipseのAndroid DDMSパースペクティブビューをお試しください。 – Thommy

+1

私は試しましたが、何を探したらいいのか分かりません。あなたはもっと具体的になりますか? – Remi

答えて

3

私はちょうどこれに対処してきました。 「SFAIK」というOSは、「あまりにも多くのファイルを開く」と言われています。 Unixでは、端末にlsofを実行してください。何個のファイルがあるのか​​信じられないので、lsof | lessにしてください。最近、アプリはファイルが狂っています。

とにかく、いくつかのアプリケーションを便利な数だけシャットダウンし、もう一度やり直してください。大きな犯人の1人はadbです。それが何かを閉鎖するかどうかはわかりません。したがって、いくつかのアプリケーションを終了しても役に立たなかった場合は、Eclipseを終了してください。その後、Unix端末でskill -9 adbを実行します。他のOSには他のkillツールがあります。しかし、おそらく(確かにUnixでは)Eclipseを閉じた後、バックグラウンドで動揺しているかもしれません。

これが機能しない場合は、実際には小さくなります。そこに入る。それらのファイルを手作業で閉じます。

lsof | grep USER | tee /dev/tty | wc -l 

USERによって開かれたファイルの総数は出力の最後に印刷されます。

+0

それもマックの下で助けた。ありがとう! – User

0

ファイルの数を取得するためには、あなたはまた、以下のコマンドを使用することができ、ファイルそのものと一緒に開かれました。

0

また、あなたのアプリが使用しているすべてのファイルを見るために

lsof | grep <pid>

のようなものを実行することができます。最後に| wc -lを追加して合計を取得します。

関連する問題