首页 > 解决方案 > 尝试在空对象引用上调用虚拟方法 'android.os.Handler android.app.FragmentHostCallback.getHandler()'

问题描述

由 java.lang.NullPointerException 引起尝试在空对象引用上调用虚拟方法 'android.os.Handler android.app.FragmentHostCallback.getHandler()'

我有一个片段,其中有一个图像,它的作用就像滑动以关闭,当这个动作发生时,我必须返回。下面是我为此提供的代码。

BaseFragment.kt

fun goBack() {
    if (activity is BaseActivity<*>) (activity as BaseActivity<*>).goBack()
}

基本活动.kt

open fun goBack() = onBackPressed()

@CallSuper
override fun onBackPressed() {
    if (supportFragmentManager.backStackEntryCount > 0)
        supportFragmentManager.popBackStackImmediate()
    else super.onBackPressed()
}

在上述情况下,调用总是转到 super.onBackPressed()。在本地和生产中的大多数用户中一切正常。然而,对于某些用户来说,当 super.onBackPressed() 被调用时,它会抛出 NPE 之上。

标签: androidkotlinandroid-fragmentsandroid-activity

解决方案


推荐阅读