Что может вызывать сбой моего приложения WP7 только на некоторых моделях? - PullRequest
4 голосов
/ 28 февраля 2011

Я работаю над этой проблемой около месяца.Я не ожидаю, что кто-нибудь сможет дать мне окончательный ответ.На данный момент у меня совершенно нет идей, и я могу использовать что угодно.

Проблема в том, что мое приложение вылетает только на некоторых моделях телефонов.У меня есть HTC объемный и работает нормально.Он также был протестирован на Samsung Focus и работает там.Он довольно часто падает на HTC Mozart.Есть другие телефоны, на которых он падает, но я не знаю, какие они модели.У меня нет доступа к HTC Mozart, поэтому отладка была очень сложной.

Я обрабатываю событие UnhandledException приложения, и я пытаюсь перехватить все фоновые потоки.Код обработки ошибок никогда не запускается.

Что я знаю:
Иногда он зависает и требует нажатия кнопки питания.По крайней мере, однажды потребовалось вынуть батарею.Большую часть времени он зависает, а затем падает.
Большую часть времени он падает в главном меню, прежде чем все отображается.
Это не на 100% согласованно.Иногда это работает немного, но никогда не очень долго.
Это не потому, что у нее недостаточно памяти.Большую часть времени происходит сбой при использовании менее 8 МБ.
Когда не работала вся обработка исключений, я добавлял отладочные логи.Это замедляет ход событий, но в то же время проблема исчезает.

Эти симптомы заставляют меня думать, что это тупик.Несмотря на то, что я просмотрел код, и нет потока, который когда-либо вводил бы больше 1 блокировки за раз.

Буду признателен за любые идеи о том, как мне это отследить.

Редактировать : Это WP7-версия моей игры .Я только что смог подтвердить с добровольцем из HTC Mozart, что простейшее преобразование кода, предназначенного для запуска в Интернете, приведет к сбою на телефоне.Код не имеет сети, изолированного хранилища или звука.

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

Ответы [ 4 ]

1 голос
/ 28 февраля 2011

Если устройства блокируются, то я подозреваю, что нужно посмотреть на области, где вы находитесь ближе всего к уровню / оборудованию драйвера, которые (глядя на вашу игру):

  • дисплей
  • звук

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

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

Если это приложение Silverlight, то я ожидаю, что Microsoft захочет помочь - я бы связался с ними через AppHub и через их местную команду Evangelist - у них будут средства и мотивация, чтобы помочь вам.

Я рад помочь в тестировании на HTC Trophy, разблокированном разработчиком, если это поможет!

0 голосов
/ 01 марта 2011

У некоторых устройств есть проблемы, когда вам нужно установить «контент» вместо «встроенный ресурс» в вашем проекте.

Хотя я больше слышал об этой проблеме, связанной со временем запуска приложения, поскольку на некоторых устройствах (HD7?) Загрузка приложения занимала достаточно времени, чтобы приложение никогда не запускалось, подумала ОСэто заняло слишком много времени и убило его.

0 голосов
/ 28 февраля 2011

У меня была примерно такая же проблема при разработке моего приложения WP7 . Насколько я могу судить, это не столько привязка к модели, сколько привязка к устройству. Фактически мое приложение было развернуто на более чем 15 трофеях (моя компания предоставила всем своим сотрудникам одно из них), и оно неоднократно зависало на некоторых из них, имеющих одинаковую прошивку. Некоторые отзывы, которые я получил через обзоры, указывают на то, что это также происходит в дикой природе.

В моем случае сбой происходит в основном (только?) При запуске приложения. Кажется, существует сильная корреляция между подключением к Интернету и сбоем в том, что я могу «воссоздать» сбой, переведя телефон в режим полета, отключив сетевой кабель от компьютера, а затем развернув приложение. В этом случае он также немедленно падает, и никакое событие или точка останова никогда не возникают.

Мои интуитивные ощущения говорят мне, что это может иметь какое-то отношение к элементу управления картой, так как он, как правило, реагирует на плохую связь при загрузке приложения (например, отображение сообщения об ошибке, что карта не может быть загружена при одновременном отображении карты ) Использует ли ваше приложение также элемент управления картой (возможно, в сочетании с элементом управления Pivot?)

0 голосов
/ 28 февраля 2011

Единственное, что я могу вспомнить, что это уникально для Моцарта, это то, что он имеет 8-мегапиксельную камеру, а все остальные - 5-мегапиксельную.размер?

Кроме этого, что делает приложение?Какие сервисы и функции устройства вы используете?

Есть ли у вас доступ к сети, работающий в фоновом потоке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...