【问题标题】:app crash after opening push notification打开推送通知后应用程序崩溃
【发布时间】:2015-04-27 17:12:16
【问题描述】:

我正在使用 Parse.com 发送推送通知 我的应用程序工作正常,并且推送通知已成功发送到设备,但是当我打开通知应用程序时被强制关闭。 我的 logcat 错误是:

FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to resume activity java.lang.NullPointerException

我在主课上的 OnResume() 是:

@Override
protected void onResume() {
    super.onResume();

    if (this.getIntent() != null) {
        final Bundle extras = this.getIntent().getExtras();
        if (extras != null) {
            final String tabTag = extras.getString("tab_tag");

            if (tabTag.equals("All Photos"))
                mViewPager.setCurrentItem(1);
            else if (tabTag.equals("Favorite"))
                mViewPager.setCurrentItem(2);
            else
                mViewPager.setCurrentItem(0);
        }
    }

【问题讨论】:

  • tabTag 或 mViewPager 在您显示的代码中必须为空。我猜它是 tabTag,但也有可能 mViewPager 以某种方式被破坏并且在 onResume 期间为空。尝试使用 if 语句检查其中一个是否为空,然后打印出 logcat 中的哪个。

标签: android parse-platform


【解决方案1】:

很难说给定的有限堆栈跟踪,因为我们不知道代码中断的确切行。所以我假设异常是在你提供的 OnResume() 方法中的某个地方抛出的。

如果NullPointerException 被抛出在这一行:

if (tabTag.equals("All Photos"))

然后变量tabTag 为空,表示a)“tab_tag”的值为空,或b)您正在读取的extras 包中不存在键"tab_tag"

但是,如果NullPointerException 被抛出在这一行:

mViewPager.setCurrentItem(1);

然后mViewPager 为空,表示a) mViewPager 尚未初始化,或b) 已初始化的mViewPager 实例已丢失。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    相关资源
    最近更新 更多