爲什麼不是這行代碼的工作?爲什麼這行Java代碼會導致我的應用程序退出?
int display_width = display.getCurrent().getWidth();
當我開始我的midlet時,我看到這個錯誤:異常。應用程序意外退出。聯繫應用程序提供商以解決問題。 0.
爲什麼?
爲什麼不是這行代碼的工作?爲什麼這行Java代碼會導致我的應用程序退出?
int display_width = display.getCurrent().getWidth();
當我開始我的midlet時,我看到這個錯誤:異常。應用程序意外退出。聯繫應用程序提供商以解決問題。 0.
爲什麼?
這裏有可能引發異常,但庫隱藏在用戶友好的錯誤消息後面。
我的猜測是display.getCurrent()
返回null,所以getWidth()
導致NullPointerException
。 試試這個:
Display myDisplay = display.getCurrent();
System.out.println(myDisplay);
int display_width = myDisplay.getWidth();
注意,您需要更換Display
類可不管display.getCurrent()
的返回值的類型。
或者,更好的,你可以嘗試捕獲異常:
try {
int display_width = display.getCurrent().getWidth();
} catch (RuntimeException e) {
e.printStackTrace();
throw e;
}
給定了問題中的代碼片段,甚至有'display'顯示爲null的機會;在這種情況下,NPE可能會拋出'display.getCurrent()' – gnat
是真的。無論哪種方式,捕捉異常將診斷問題。 – zjagannatha
目前沒有?......當然,更多的情況下是有幫助... –
驗證是否display.getCurrent()= = null – user1929959