参考文章 卧槽系列 - Fragment already added 或许并不是你想的那样 | 积跬步,至千里。
项目绑定布ji局用的是 Butterknife
app闪退之后的log 是
Process: com.hykj.meimiaomiao, PID: 26088
java.lang.IllegalStateException: Fragment already added: PhoneMaintain_Repaire_order_Fragment{22c912b} (e83f6691-8c6d-4795-b2da-a2abcad803d6) id=0x7f0a0d56 android:switcher:2131365206:0}
at androidx.fragment.app.FragmentStore.addFragment(FragmentStore.java:67)
at androidx.fragment.app.FragmentManager.addFragment(FragmentManager.java:1563)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:405)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2167)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1990)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1945)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1847)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
at android.os.Handler.handleCallback(Handler.java:900)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
然后一直找哪里重复添加了fragment,也试了很多网上的方法,都不管用
最后司马当作活马医 ,在fragment绑定view的时候 加了try catch ,果然错误就变了,说 Butterknife 找不到 view的id ,可是我的id都是对得上的啊 ,没办法我只好原生的findviewbyid,然后真正的错误出来了,是 下拉刷新view的类型出错。
奶奶的 早用 findviewbyid 不久好了 bug日志有时候都不靠谱 以后还是都用原生吧