【问题标题】:Throwed a NullPointerException: The fragment has been removed from FragmentManager in testing抛出 NullPointerException:该片段已在测试中从 FragmentManager 中删除
【发布时间】:2021-01-12 16:13:59
【问题描述】:
@Test
    fun testBottomSheetShown(){
        val args = Bundle().apply {
            putString("EXTRA_TITLE", "title")
            putString("EXTRA_CURRENT_VALUE", "choiceOne")
        }
        val scenario = launchFragmentInContainer<ChoicesBottomSheet>(args, R.style.BottomSheetDialog)
        scenario.onFragment { 
            assertEquals(Lifecycle.State.RESUMED, it.lifecycle.currentState)
        }
    }

我尝试使用片段场景测试我的底部表,但它抛出以下错误:

java.lang.NullPointerException: 该片段已从 FragmentManager 中移除。

【问题讨论】:

    标签: android-testing


    【解决方案1】:

    launchFragmentInContainer 将导致 ChoicesBottomSheet 达到 RESUME 状态。

    片段已从 FragmentManager 中移除

    如果 Fragment 已被销毁,并且您正在尝试访问它,则会引发上述错误。因此,我相信您的 BottomSheet 片段在其流向 RESUME 状态期间被解除。请检查您的 BottomSheet 代码中是否有 dismiss() 调用,该调用在您的片段到达 onResume() 调用之前被调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 2014-04-24
      • 1970-01-01
      相关资源
      最近更新 更多