我需要帮助。我在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;
}
答案 0 :(得分:0)
也许您必须在发布版本中的proguard-rules.pro中声明一些内容?您是否检查过它是否仅在发布版本中发生?我认为您的调试版本忽略了proguard并且它工作正常,但是如果您检查发布版本,您将有机会重现崩溃。也许应该在proguard中声明一些Fragment子组件。
答案 1 :(得分:0)
对于android中的Fragments,你需要在onStart()方法中对它们进行编码。并使用onCreateView()返回您想要该特定片段的布局