【发布时间】:2018-03-18 02:27:51
【问题描述】:
我使用 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);
}
【问题讨论】:
-
您应该发布堆栈跟踪和导致 NPE 的代码。很难说否则会出什么问题。
-
我已经添加了导致问题的代码。我将尝试获取屏幕上显示的堆栈跟踪信息,但这很困难,因为该应用程序正在生产中并且无法使用模拟器进行复制。
标签: codenameone