2012-05-04 19 views
2

Я отлаживаю приложение Android на планшете HTC, и каждый раз, когда я удаляю приложение, устройство перезагружается. Деинсталляция также происходит как часть попытки создания новой сборки, поэтому любые изменения в приложении требуют перезагрузки перед тестированием. Это предсказуемо усугубляет развитие.Предотвращение перезагрузки Android-устройства при удалении/удалении приложения

Проблема звучит подобно that described here, за исключением того, что в моем случае нет никакой тайны. Uninstall => reboot. Заменить приложение и отладить через Eclipse & adb => reboot. Вытирание всех данных на устройстве, как это предлагается в единственном ответе на подобную проблему, нежелательно, тем более, что не так много признаков того, что даже этот плакат видел это как нечто иное, чем технологический эквивалент жертвоприношения цыплят.

Может ли кто-нибудь сказать мне, почему это происходит и как его предотвратить?

+0

Это имеет значение, если вы удалите его по-разному? то есть АБР или вручную на устройстве – FoamyGuy

+0

Нет. Ручное удаление путем перетаскивания в корзину и 'adb uninstall ' оба приводят к перезагрузке. – blahdiblah

+0

Какое устройство оно? Перезагружается ли она при удалении других программ? или только тот, над которым вы работаете? – FoamyGuy

ответ

1

Я не предлагаю это как ответ (по крайней мере пока), но нужно больше места, чем комментарий обеспечивает мозговой штурм о том, как исследовать этот

Я был бы соблазн взять сейф " hello world "и объединить его в проект как свою собственную деятельность. Затем закомментируйте все реальные функции из манифеста и java-файлов. Это должно оставить только мир приветствия и ресурсы. Посмотрите, выживает ли устройство, удалив его после прогона - если нет, угадайте, что вам, возможно, придется подозревать ресурсы.

Это должно сделать комментирование - или вы можете просто удалить файлы оптом из дерева

find . -name "*.java" | xargs -I f sed -i 's/^/\/\//' f 

(Некоторые редакторы будут делать блок комментариев/раскомментировать, Emacs будет делать произвольные операции на колонке файла.)

Затем я либо раскомментировал скелет реальной активности - то есть все методы onCreate, onStart и т. Д. Без каких-либо операций в них и восстановил эту активность в манифесте. Или я бы восстановил функциональный Java-код, но оставил активность из манифеста. Затем вы можете постепенно увеличивать функциональность до тех пор, пока не получите крах.

Если у вас есть какие-либо ndk-библиотеки или даже java-библиотеки, вы можете играть в подобные игры с ними.

Вы также можете попробовать запустить logcat во время удаления и посмотреть, не возникли ли какие-либо сообщения до того, как устройство зависает на вас.

Ой - и главный вопрос - перезагрузка ядра или перезапуск в режиме андроида? В последнем случае adb & logcat должен, вероятно, сохраниться, а/proc/uptime не будет сбрасываться на небольшое число.

Если вы дошли до подозрительной операции, было бы здорово, если бы вы могли опубликовать описание этого - у меня есть аналогичное устройство в моей тестовой коллекции, и было бы интересно узнать, имеет ли он такую ​​же явную ошибку. Также у HTC есть ряд «евангелистов-разработчиков», которые могут быть точкой контакта.

+0

Спасибо за помощь! Могущественное тестирование изменений придется ждать до следующей недели, но я буду обновлять любую новую информацию, как только я ее получу. – blahdiblah

+0

Вы исправились? – Rombus