java.lang.NoSuchMethodError:没有虚拟方法 getParentFragmentManager()

Posted

技术标签:

【中文标题】java.lang.NoSuchMethodError:没有虚拟方法 getParentFragmentManager()【英文标题】:java.lang.NoSuchMethodError: No virtual method getParentFragmentManager() 【发布时间】:2020-10-28 15:34:23 【问题描述】:
override fun onCreate(savedInstanceState: Bundle?) 
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    val navView: BottomNavigationView = findViewById(R.id.nav_view)

    val navController = findNavController(R.id.nav_host_fragment)
    val appBarConfiguration = AppBarConfiguration(setOf(
            R.id.navigation_home, R.id.navigation_dashboard, 
                                   R.id.navigation_notifications))
    setupActionBarWithNavController(navController, appBarConfiguration)
    navView.setupWithNavController(navController)



 <fragment
    android:id="@+id/nav_host_fragment"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_
    android:layout_
    android:visibility="gone"
    app:defaultNavHost="true"
    app:layout_constraintBottom_toTopOf="@id/nav_view"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:navGraph="@navigation/mobile_navigation" />

java.lang.NoSuchMethodError: 没有虚拟方法 getParentFragmentManager()Landroidx/fragment/app/FragmentManager;在 类 Landroidx/navigation/fragment/NavHostFragment;或其超级 类('androidx.navigation.fragment.NavHostFragment'的声明 出现在 /data/app/~~MGLc4E8e1G_cs0ZWkl7w2Q==/com.trend.topcar-cfc6kzaHX2ROCl0ZEzapbw==/base.apk) 在 androidx.navigation.fragment.NavHostFragment.onAttach(NavHostFragment.java:197) 在 androidx.fragment.app.Fragment.performAttach(Fragment.java:2574) 在 androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:828) 在 androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1133) 在 androidx.fragment.app.FragmentManagerImpl.addFragment(FragmentManagerImpl.java:1393) 在 androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.java:3205) 在 androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:134) 在 androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357) 在 androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:336) 在 android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1067) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:995) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:1121) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1082) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:680) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:532) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:479) 在 androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 在 androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 在 com.trend.topcar.MainActivity.onCreate(MainActivity.kt:16) 在 android.app.Activity.performCreate(Activity.java:7984) 在 android.app.Activity.performCreate(Activity.java:7973) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3329) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3500) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:2049) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:223) 在 android.app.ActivityThread.main(ActivityThread.java:7523) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:941)

【问题讨论】:

能否提供您正在使用的库版本? 【参考方案1】:

我认为您应该寻求支持片段管理器。 getParentFragmentManager() 它应该可以工作。

【讨论】:

以上是关于java.lang.NoSuchMethodError:没有虚拟方法 getParentFragmentManager()的主要内容,如果未能解决你的问题,请参考以下文章