[英]No view found for id for fragment
我需要幫助。 我在Crashlytics上崩潰了:
Fatal Exception: java.lang.IllegalArgumentException: No view found for id 0x7f0f016c (com.my.my:id/fragment_root_layout) for fragment a{2e8d61e1 #4 id=0x7f0f016c fragment_tag}
我用片段變成片段。 在父片段的OnCreate方法中,我使用幫助FragmentManager添加子片段。 我有個問題,問題是在OnCreate方法中添加了子片段,需要在OnCreateView中執行此操作。 但是我不確定。 問題是我無法重現此崩潰,但我在Crashlytic上遇到了崩潰。 父片段layount上的所有視圖都有一個id。 僅當我在OnCreateView方法中膨脹不正確的布局時,我才能重現此崩潰,但是在實時構建中不會發生這種情況。 請給我一個建議。
編輯:添加子片段的代碼
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LogUtils.verbose(TAG, "displayOverlayFragment: attempt to add a fragment using FragmentTransaction");
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
OverlayFragment overlayFragment = new OverlayFragment();
fragmentTransaction.add(R.id.fragment_root_layout, overlayFragment, FRAGMENT_TAG);
fragmentTransaction.commit();
}
onCreateView的代碼:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(getLayoutResId(), container, false);
mRecyclerView = initRecyclerView(view);
mProgressBar = view.findViewById(R.id.progressBar);
mProgressBarLabel = (TextView) view.findViewById(R.id.progressBarLabel);
}
return view;
}
@Override
protected int getLayoutResId() {
return R.layout.fragment_favorites;
}
也許您必須在發布版本中的proguard-rules.pro中聲明一些內容? 您是否僅在發布版本中檢查過它? 我認為您的調試版本會忽略proguard,並且工作正常,但是如果您檢查發布版本,則將有機會重現崩潰。 也許應該在proguard中聲明一些Fragment子組件。
對於android中的片段,您需要在onStart()方法中對其進行編碼。 並使用onCreateView()返回要針對該特定片段使用的布局
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.