Dan*_*ura 5 java debugging stack-trace java-me
我在诺基亚S40中遇到了NullPointerException.
我想知道造成这种异常的原因.
该设备显示:
NullPointerException java/lang/NullPointerException
此错误仅发生在设备中,在模拟器中运行,应用程序正常工作.
我使用microlog来调试我的应用程序.但是如果启用了日志,则应用程序可以正常运行.
当我得到这个NullPointerException时,有没有办法获得堆栈跟踪?我不需要所有细节,如行号,哪种方法导致此异常.
更新:我在另一台诺基亚S40中安装了相同的应用程序,但没有发生同样的错误.
更新2:不知何故,我发现导致NullPointerException的原因.
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
public class OuterClass extends Canvas {
private Config config;
public OuterClass() {
this.config = new Config();
}
public void paint(Graphics graphics) {
HelperClass helper = new HelperClass(this.config);
helper.doStuff();
}
public void dispose() {
this.config = null;
}
public class Config implements IConfig {
public int getSomething() {
// ...
}
}
}
public class HelperClass {
private IConfig config;
public HelperClass(IConfig) {
this.config = config;
}
public doStuff() {
config.getSomething(); // Here is thrown NullPointerException
}
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,启动一个线程并在helper.doStuff()之前调用OuterClass.dispose(),从而导致NPE.我认为当我启用日志时,它使线程变慢,并且当我预期它被调用时调用了helper.doStuff().
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |