Управление ошибками не работает

Я андроид-разработчик. Недавно я приобрел Samsung Galaxy S3 (I9300), и у меня возникли некоторые проблемы с ним.

Управление ошибками не работает. Я имею в виду, когда приложение вылетает, оно не показывает «Принудительно закрыть», телефон просто зависает.

Раньше у меня был HTC; Я использую его и при разработке, и с тем же неисправным приложением мой HTC показывает принудительное закрытие, но S3 зависает, и мне приходится перезапускать его. Как вы понимаете, это очень раздражает.

Я нашел временное решение, но оно влияет на Wi-Fi. Использование этого приложения

https://play.google.com/store/apps/details?id=com.issess.fastforceclose&feature=search_result#?t=W251bGwsMSwyLDEsImNvbS5pc3Nlc3MuZmFzdGZvcmNlY2xvc2UiXQ..

и включение «старого быстрого принудительного закрытия», кажется, решает проблему, но у него есть проблемы, связанные с Wi-Fi.

Вещи, которые я пробовал

  • Чистка ПЗУ, очистка данных и кэша Dalvik (вначале работает, но вдруг телефон зависает и при перезагрузке управление ошибками больше не работает)

  • Удалить все приложения

Что мне не хватает? Как я могу решить эту проблему?


person jl1990    schedule 07.08.2012    source источник


Ответы (2)


см. http://forum.xda-developers.com/showthread.php?t=1843837 , особенно сообщение №8

цитирую:

Наконец-то я понял, что делает приложение «Fast Force Close», чтобы остановить зависание. Он делает что-то довольно простое: он в основном «скрывает» папку /data/log, перемещая ее в сторону и заменяя символической ссылкой. И это также приводит к тому, что Wi-Fi не подключается после перезагрузки (не знаю почему)

mv /data/log /data/log_backup
ln -s /dev/null /data/log

Чтобы «отключить» исправление, он просто делает обратное.

Во всяком случае, это заставило меня подумать, что решение каким-то образом связано с тем, что происходит в этой папке. И одна из вещей, происходящих в этой папке при принудительном закрытии, заключается в том, что она получает вывод команды dumpstate:

dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_error

Итак, мое решение проблемы «Заморозить диалоговое окно вместо принудительного закрытия» состоит в том, чтобы поместить некоторые файлы в папку /data/log с такими разрешениями, что dumpstate не может выполнять свою работу.

Я нашел это, чтобы решить проблему, но я не знаю, есть ли побочные эффекты.

Если вы хотите реализовать это, вы можете сделать это разными способами (например, даже через эмулятор терминала или, возможно, какой-нибудь корневой файловый менеджер). Я прилагаю flashable почтовый индекс, который сделает это для вас. (см. ссылку XDA)

Помимо некоторого стандартного кода, важным является следующее (в сценарии обновления в zip):

ui_print("Apply fix...");
delete("/data/log/dumpstate_app_error");
delete("/data/log/dumpstate_app_error.txt.gz");
delete("/data/log/dumpstate_app_error.txt.gz.tmp");
package_extract_file("placeholder", "/data/log/dumpstate_app_error");
package_extract_file("placeholder", "/data/log/dumpstate_app_error.txt.gz");
package_extract_file("placeholder", "/data/log/dumpstate_app_error.txt.gz.tmp");
set_perm(0, 0, 0400, "/data/log/dumpstate_app_error");
set_perm(0, 0, 0400, "/data/log/dumpstate_app_error.txt.gz");
set_perm(0, 0, 0400, "/data/log/dumpstate_app_error.txt.gz.tmp");
person fred_be9300    schedule 20.08.2012
comment
У меня проблемы с прошивкой, я получаю статус 7 :s - person jl1990; 23.08.2012
comment
лучше обсудить на XDA. Возможно, вам нужно отключить утверждения и/или проверку подписи. - person fred_be9300; 26.08.2012

Проблема была решена для меня путем обновления телефона до последней доступной версии Android.

person jl1990    schedule 01.01.2014