从推送通知打开应用程序会导致NullPointerException

时间:2018-03-17 13:53:18

标签: codenameone

我使用Codename One创建了一个应用,但我在Android上推送通知时遇到了问题。

当应用未在后台打开时打开推送通知时会出现问题。

当它尝试使用主题中的任何资源时,会导致NullPointerException。主题在init()方法中初始化,但在打开推送通知时似乎不会发生。

如果我然后在与空指针相同的方法中初始化主题,就在它发生之前,它就可以工作了。然后继续在方法中进一步导致空指针。

为什么在应用程序未在后台打开时打开推送通知时,某些对象似乎没有在Android上初始化?

使用主题时最初导致NullPointerException的行是

Image icon = theme.getImage("ADINlogoRound.png");

我的初始化方法是

public void init(Object context) {
    theme = UIManager.initFirstTheme("/theme");
    Resources css = null;
    try {
        css = Resources.openLayered("/theme.css");
    } catch (IOException ex) {
    }
    UIManager.getInstance().addThemeProps(css.getTheme(css.getThemeResourceNames()[0]));

    // Enable Toolbar on all Forms by default
    Toolbar.setGlobalToolbar(true);

    Log.bindCrashProtection(true);

    Display.getInstance().lockOrientation(true);
}

1 个答案:

答案 0 :(得分:1)

似乎在android中,当从推送通知打开应用程序时,不会调用init和start方法。无论你在这些方法中做什么,也应该用push方法完成。