How to get the stacktrace in a mobile device?

Posted by Daniel Moura on Stack Overflow See other posts from Stack Overflow or by Daniel Moura
Published on 2009-08-13T19:54:33Z Indexed on 2010/05/01 21:27 UTC
Read the original article Hit count: 500

Filed under:
|
|
|

I'm getting a NullPointerException in a Nokia S40.

I want to know what is causing this exception.

The device shows:

NullPointerException java/lang/NullPointerException

This error only occurs in the device, running in the emulator the application works fine.

I use microlog to debug my application. But the application works fine if the log is enabled.

Is there a way to get the stack trace when I get this NullPointerException? I don't need all details like the line number just which method cause this exception.

UPDATE: I installed the same application in another Nokia S40 and the same error didn't occur.

  • Nokia 2660 - error
  • Nokia 6131 - no error

UPDATE 2: Somehow I find what was causing the 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
        }
    }

In some situations a thread is started and call the OuterClass.dispose() before the helper.doStuff() causing the NPE. I think when I enabled the log it made the thread slower and helper.doStuff() was called when I expected it to be called.

© Stack Overflow or respective owner

Related posts about stacktrace

Related posts about java-me