2013-06-08 3 views
1

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

Я работаю в Eclipse Helios.

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

ответ

0

В приложении Eclipse вы можете отлаживать приложение, подключая реальное устройство BlackBerry через USB-кабель, или вы можете скачать a BlackBerry simulator and use it to test your app. Обратите внимание, что симуляторы BlackBerry поддерживаются только в Windows.

После запуска отладки, Вы должны увидеть затмение Debugперспективы. Обычно одним из открытых окон в Eclipse будет окно Console. Если вы не видите, что с помощью меню Eclipse:

Window -> Show View -> Console 

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

[0.0] JVM: bklt[1]: setTimeout 120 
[0.0] JVM: bklt[1] @438007: JBSC on=0 
[0.0] JVM: bklt[1] @438007: SC 0 
[0.0] JVM: bklt[1]: setTimeout 120 
[0.0] VM:TRJFp=net_rim_services_impl 
[0.0] net_rim_crypto_1-3(4CC8AA32) 
[0.0] StatusClean 

Любой стандартный вывод, создаваемый вашей программой (например, System.out.println()), будет смешаться с этими сообщениями из ОС.

Нормальные java.lang.Exception объекты BlackBerry имеют много полезной информации удалены, так что если вы не знаете, что это за исключением выбрасывают, или где, вы можете отлаживать эту проблему просто catching all java.lang.Throwable objects в your app's main program:

public static void main(String[] args) { 
    try { 
     Application app = new MyApp(); 
     app.enterEventDispatcher(); 
    } catch (Throwable t) { 
     t.printStackTrace(); 
    } 
} 

public MyApp() {    

    ButtonScreen bs = new ButtonScreen(); 
    pushScreen(bs); 

    bs.throwException(); // <- for test purposes! 
} 

Затем, вы увидите что-то вроде этого в окне консоли и может выяснить, что происходит неправильно в вашем коде:

[0.0] FocusHistory: Focus gained; App HelloBB; Component mypackage.ButtonScreen$1 
[0.0] IllegalArgumentException 
[0.0] testing exception handling code! 
[0.0] HelloBB(51B3A691) 
[0.0] ButtonScreen 
[0.0] throwException 
[0.0] 0x74C 
[0.0] HelloBB(51B3A691) 
[0.0] MyApp 
[0.0] <init> 
[0.0] 0x151B 
[0.0] HelloBB(51B3A691) 
[0.0] MyApp 
[0.0] main 
[0.0] 0x14B2 
[0.0] VM:TRJFp=HelloBB 
[0.0] net_rim_cldc-26(4CC89E31) 
[0.0] BlockingTimeSource 
[0.0] run 
[0.0] 0x104D 
[0.0] VM:TRJFp=HelloBB 
[0.0] net_rim_cldc-26(4CC89E31) 
[0.0] BlockingTimeSource 
[0.0] run 
[0.0] 0x104D 
[0.0] VM:TRJFp=HelloBB 
[0.0] net_rim_cldc-26(4CC89E31) 
[0.0] BlockingTimeSource 
[0.0] run 
[0.0] 0x104D 

в этой ситуации, я ставлю этот код:

public void throwException() throws Exception { 
    throw new IllegalArgumentException("testing exception handling code!"); 
} 

в мое приложение, так что мой MyApp#main() метод называется MyApp конструктор, который называется методом ButtonScreen#throwException().

+0

сэр я попробую, но консоль только каждый раз показывает сообщение об успешном завершении, а другое дело в том, что я использую system.out.println («Hello Message»); он не может появиться на консоли –

+0

@Rahul. Если вы решите ** отлаживать ** ваше приложение на устройстве, оно отобразит любые сообщения 'System.out.println()' в окне консоли и покажет вывод «Throwable # printStackTrace()», как я показал. Помните, что Консоль ** также ** показывает много сообщений из операционной системы, поэтому вам нужно тщательно просмотреть результаты, чтобы вы не пропустили сообщения из своего приложения. Но они там. – Nate

+0

@Rahul, вы также можете увидеть [этот аналогичный вопрос] (http://stackoverflow.com/q/5612034/119114) еще два способа регистрации информации из приложения BlackBerry. – Nate