Java Me приложение работает нормально в эмуляторе, но сбивается при развертывании на N70. Любой способ определить причину сбоя?

StackOverflow https://stackoverflow.com/questions/2776347

  •  03-10-2019
  •  | 
  •  

Вопрос

Я разработал приложение Java ME для платформы CLDC. Работает нормально при выполнении в эмуляторе. Но когда я развернул его к моему телефону N70, приложение не начинается вообще в телефоне. В моем приложении есть около 14 классов и создаем экземпляр каждого из каждого и вкладывая их в вектор на приложении. Классы просто имеют одну переменную и 2 метода. Может ли это создание многих экземпляров быть причиной его сбоя?

Есть ли способ узнать причину, по которой приложение не может начать в телефоне?

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

Это было полезно?

Решение

Это может зависеть от того, где в коде вы создаете эти экземпляры. Если вы создаете их в своем Midlet Constructor или метод StartApp, попробуйте переместить инициализацию в метод запуска вашего приложения.

Один из способов отладка приложений J2ME, которые не запускают на телефоне, - добавляя «PrintF» в стиле отладки в вашем коде, которые будут записаны в системе хранилища записи и добавление другого мидлета к вашему приложению, чтобы прочитать из RMS и отображать эти сообщения. Или вы могли бы просто комментировать биты кода и посмотреть, работает ли он.

Другие советы

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

Другой вариант - использовать Nokia Tools Это позволяет вам просмотреть стандартное вывод и ошибку для вашего приложения, когда он работает на вашем устройстве (например, через Bluetooth).

Вероятность того, что ваше приложение фактически сбивается на фактическом пабеле Java Virtual Machine Bytecode Thread Threade Thread и завершение всего собственного процесса очень маленький.

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

Скорее всего:

  • Ваш мидлет не создан или не запущен, потому что время выполнения MIDP решает, что неверно.
    или
  • Ваша мидлет просто бросает исключение, что вы не поймаете, что может заставить его выглядеть так, будто он был жестоко прекращен.

Поскольку Midlet Installer должен предотвратить вас установку плохого мидлета, проблема неисказанного исключения более вероятна.

Как найти неосторожное исключение:

  • Начните с простейшего мидлета HellowOrld, используя Form так что вы можете легко вставить больше StringItemS в верхней части экрана.
  • Создать и начать новый Thread в MIDlet.startApp()
  • В вашем переопределении Thread.run(), добавить try{}catch(Throwable){} блокировать.
  • Внутри этого блока делай все, что сделал ваш оригинальный мидлет.
  • Используйте форму в качестве стандартного вывода для отладки.

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

Это первый шаг, чтобы выяснить, что происходит.

Я также столкнулся с подобной проблемой, и когда я перекомпилировал мою мидулку как мидлет 1.0, тогда он работал нормально. Похоже, N70 не может запустить новую версию мидлет. Я думаю, что вы понижете и повторно проверите свой мидлет.

С уважением

Юнайде

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top