最近在浏览项目里 Umeng 统计的崩溃日志时,发现一个空指针异常:

  • java.lang.NullPointerException: Attempt to invoke virtual method 'androidx.fragment.app.FragmentManager androidx.fragment.app.FragmentActivity.getSupportFragmentManager()' on a null object reference

  • at com.yhmedia.uking.dialog.PayVipDialog.paySuccess(PayVipDialog.java:90)

  • at com.yhmedia.uking.util.PayUtil.reportPaySuccess(PayUtil.java:239)

  • at com.yhmedia.uking.util.PayUtil.onPaySuccess(PayUtil.java:229)

  • at com.yhmedia.google_pay_library.GPayUtil.postPayStateEvent(GPayUtil.java:384)

溯源发现是异步的问题,dialog 依存的 activity 销毁导致上下文不存在

/**
* 防止因 getactivity 为空崩溃
*
* @return
*/
protected FragmentActivity getActivityNonNull() {
    if (super.getActivity() != null) {
        return super.getActivity();
    } else {
        throw new RuntimeException("null returned from getActivity()");
    }
}

对 getActivity 做了二次判断防止崩溃,更深的原因没有探究,如果有大神了解还请指正。

关于DialogFragment 的 getActivity() 方法为空值的问题相关推荐

  1. getcontext方法 getactivity方法的区别

    MainActivity.this:表示MainActivity对象,一般用在内部类中指示外面的this,如果在内部类直接用this,指示的是内部类本身.因为MainActivity继承Activit ...

  2. Python-pandas的fillna()方法-填充空值

    0.摘要 pandas中fillna()方法,能够使用指定的方法填充NA/NaN值. 1.函数详解 函数形式:fillna(value=None, method=None, axis=None, in ...

  3. pandas的fillna()方法-填充空值

    pandas中fillna()方法,能够使用指定的方法填充NA/NaN值. https://blog.csdn.net/qq_17753903/article/details/89892631

  4. android dialogfragment 简单,使用DialogFragment

    DialogFragment是Android3.0后引入的Fragment框架中的对传统Dialog效果用Fragment做的实现.android-support-v4兼容包中也包含了该类,所以我们可 ...

  5. Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

  6. Android DialogFragment

    In this tutorial, we'll be discussing what are DialogFragments. We'll see how they are different fro ...

  7. android重写finish方法,Android - 返回上一个界面finish()方法

    返回上一个界面finish()方法 本文地址: http://blog.csdn.net/caroline_wendy Android能够使用finish()方法,实现函数返回的功能.当不是Activ ...

  8. 以回调形式使用startActivityForResult方法,并解决Activity被回收的问题

    前言 之前写过一篇文章写一个逻辑清晰的startActivityForResult(),拒绝来回扒拉代码,写了使用回调形式使用startActivityForResult方法,配合Kotlin的语法, ...

  9. python填充空值_Python机器学习(九十一)Pandas 填充(Imputation)空值

    除了删除空值,还有一种处理空值的方法是填充(Imputation). 让我们看看在revenue_millions列中填充缺失的值. 首先,将该列提取到变量中: revenue = movies_df ...

最新文章

  1. Opencv 数学基础--范数(17)
  2. hbase1.1.1 连接集群_除了HAProxy,RabbitMQ集群还可以这样用
  3. oracle 入参含多个值,oracle几个检查点参数的含义与区别
  4. 5 款阿里常用代码检测工具,免费用!
  5. ABBYY FineReader 12中怎样禁用自动处理
  6. PHP的xdebug五个按钮的说明
  7. MOCTF-Web-机器蛇
  8. css3正方体选中父层 子层解体_CSS3 :nth-child(n)选择器 匹配属于其父元素的第N个子元素...
  9. navicat怎么查看数据库的url_连接数据库url怎么写
  10. python操作腾讯文档_python查看文档
  11. Git小乌龟的安装及简单使用
  12. 百度文库需要使用下载券的文档怎么下载
  13. Word 里面如何设置多级标题
  14. 运动控制卡,越来越简单了
  15. Win10中实时网速显示
  16. 泰国旅游必拍照打卡景点推荐,高清靓图欣赏
  17. 《Python深度学习》第一章笔记
  18. 解决邮件客户端QQ Mail及Thunderbird无法登入Outlook的问题
  19. 如何实现双因素认证?
  20. php 内核 字符串 比较,PHP内核探索之变量- 不平凡的字符串

热门文章

  1. IEEE会议论文提交时 遇到:“Font Helvetica is not embedded”解决方法
  2. 持续更新 BUUCTF——PWN(三)
  3. [官方教程] 暗黑世界 客户端 配置文档
  4. GLSL —— 三种变量类型(uniform,attribute和varying)
  5. javascript的有限状态机
  6. vue3+ts - 折线图和柱状图综合使用
  7. 微信打赏功能暗示内容付费时代渐近
  8. 一篇搞懂cache的命中率
  9. 区块链人的战“疫”工作:风险和机遇并存
  10. 【计算机毕业设计】049在线教育系统设计与实现