2012-02-17 3 views
1

У меня часто возникала ошибка «Слишком много ошибок при открытии файлов» на моем устройстве (HTC Wildfire S, Android 2.3.5.). Я уже нашел несколько тем, которые, вероятно, имеют утечку памяти. Вопрос в том, как отладить проблему? Как найти, какой процесс использует файловые дескрипторы, а не выпускать его?Слишком много открытых файлов ошибка - отладка

Мое устройство не является root-ed - так что я хотел бы знать, как получить информацию об открытых дескрипторах на некорневом устройстве. Если это невозможно, дайте мне знать, как получить такие данные в эмуляторе Android.

+0

Попробуйте просмотр перспективы Android DDMS в Eclipse. – Thommy

+1

Я пробовал - но я не знаю, что искать. Можете быть более конкретными? – Remi

ответ

3

Я только что имел дело с этим. Это (SFAIK) ОС, которая говорит «слишком много открытых файлов». В любом Unix запустите lsof в терминале. Сделайте это lsof | less, потому что вы не поверите, сколько открытых файлов есть. Приложения в эти дни являются файловыми сумасшедшими.

В любом случае, выключите некоторые приложения, сколько угодно, и повторите попытку. Один из главных виновников - adb. Я не могу сказать, закрывает ли он что-либо. Поэтому, если закрытие некоторых приложений не помогло, закройте Eclipse. Затем в терминале Unix запустите skill -9 adb. Другие ОС будут иметь другие инструменты уничтожения. Но kill adt, который, вероятно (конечно, в Unix), все еще загорается в фоновом режиме после закрытия Eclipse.

Если это не сработает, получите действительно малое; входите туда; и закройте эти файлы вручную.

+0

Это помогло и под Mac. Благодаря! – User

0

Для того, чтобы получить количество открытых файлов вместе с файлами сами вы также можете использовать следующие команды:

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

Общее количество файлов, открытый USER будет печататься в самом конце вывода.

0

Вы также можете запустить что-то вроде

lsof | grep <pid>

, чтобы увидеть все файлы, ваше приложение использует. Добавьте | wc -l до конца, чтобы получить общее количество.

Смежные вопросы