Дублируемый идентификатор, тег null, с другим фрагментом для androidx.navigation.fragment.NavHostFragment - PullRequest
0 голосов
/ 20 апреля 2020

Проблема Я пытаюсь добавить фрагмент в активность, наряду с навигацией. Но я вижу следующую ошибку

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.myapp/com.app.myapp.HomeMainActivity}: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class fragment
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
    at android.app.ActivityThread.-wrap14(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6682)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
 Caused by: android.view.InflateException: Binary XML file line #12: Binary XML file line #12: Error inflating class fragment
 Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class fragment
 Caused by: java.lang.IllegalArgumentException: Binary XML file line #12: Duplicate id 0x7f0900ed, tag null, or parent id 0xffffffff with another fragment for androidx.navigation.fragment.NavHostFragment

Код

  1. activity_home_new. xml

        <?xml version="1.0" encoding="utf-8"?>
       <layout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
          xmlns:tools="http://schemas.android.com/tools">
          <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/colorPrimaryDark"
            tools:context=".HomeMainActivity">
    
            <fragment
            android:id="@+id/my_nav_host_fragment"
            android:name="androidx.navigation.fragment.NavHostFragment"
            android:layout_width="0dp"
            android:layout_height="0dp"
            app:defaultNavHost="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:navGraph="@navigation/nav_graph" />
           </androidx.constraintlayout.widget.ConstraintLayout>
    
           </layout>
    

Никаких изменений не было сделано в классе Fragment и Activity.

Решение, которое я попробовал

Я попытался изменить фрагмент на framelayout и FragmentContainerView в ctivity_home_new. xml приложение не делает; CRA sh.

Мое мнение о cra sh

cra sh связано с "androidx.navigation.fragment.NavHostFragment". Есть несколько похожих вопросов, связанных с MapFragment.

Не ищу код, я просто хочу узнать причину root для cra sh

...