Некорректная работа приложения

Рейтинг: 3Ответов: 3Опубликовано: 26.02.2015

Начал писать игру на андроид, уже есть кое-что. Но это кое-что нормально работает только на моём собственном телефоне и на эмуляторе на компе, а на остальных устройствах то одно не работает, то другое. Хотя ничего сложного в игре не используется, и тестил на норм. андроид-телефонах. Подскажите, что делать или как искать в Интернете эту проблему? В Интернете не могу найти почему-то.

UPD: РЕБЯТ!!! Я умею искать ошибки и исправлять их, просто я думал, что можно соблюдать какие-то советы, рекомендации и так далее, чтобы приложение работало без багов на 97% телефонов, а не тестировать (или сделать автоматизацию тестирования) на огромном количестве телефонов, учитывая, что при количестве кода, например, в десятки тысяч строк, этих багов может оказаться крайне много на различных телефонах, которых тоже крайне много!!!

Ответы

▲ 2Принят

чтобы приложение работало без багов на 97% телефонов, а не тестировать

Бог с Вами, сударь!
Без тестирования нельзя, основные ошибки выловишь сам, а тестировать на огромном количестве телефонов будешь по баг-репортам, так все живут.

Есть правила, которые лишь помогают избежать критичных ошибок, но не более.
Это что-то типа "Комментируй правильно код, т.е. юзай JavaDoc или аналоги" и "Избегай конструкции %something%, ибо опасна она и непредсказуема!".

▲ 6
  1. Для начала прочтите Android Device Compatibility Guide - там даны общие рекомендации, как писать совместимое приложение.
  2. Создайте несколько разных эмуляторов с прицелом под разные версии Android'а и протестируйте под ними. У меня обычно их 3: GingerBread (API=10), ICS (API=14) и KitKat (API=19).
  3. Обратите внимание, под каким API вы собираете приложение. Бывает, что люди собирают под LolliPop и пытаются запускать под GingerBread - запуститься, конечно, запустится, но если вы использовали фичи LolliPop или ICS, отсутствующие под GingerBread, - то результат понятен (скорее всего, это у вас и происходит). Запустите под Android Studio визард (по моему, называется code analysis), который ищет обращения к методам API, не совпадающим с объявленным в манифесте minSdk.
  4. Если есть таковые классы и методы не поддерживаемые вашим minSdk - тогда придется погружаться в глубины Android Support Library - занятие не самое приятное, но необходимое.
  5. Ну и, само собой, LogCat + отладчик + ACRA наше все.

Да и еще: пытаться поддерживать API Level < 10 (ниже GingerBread) - бессмысленно. Не стоит оно того.

▲ 2

@Aftorik если ты не хочешь выкладывать код сюда, или не можешь локализовать проблему сам, то я тебе предложу прикрутить библиотеку ACRA к своей андроид игре. Даже если программа падает, ACRA всё равно создаст стактрейс и запишет это в файл или отправит на email (если, конечно, настроить).