我在某些设备上遇到此问题,并在崩溃分析中出现错误。这个问题出现在应用程序遇到ANR问题时,错误是
无法启动活动ComponentInfo {com.qwykr.dryver.base / com.qwykr.dryver.base.activities.MainActivity}:android.support.v4.app.Fragment $ InstantiationException:无法实例化片段com.qwykr.dryver.base .fragments.SlideFragment:找不到Fragment构造函数
并且错误正在排除
@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
}
和Slide构造函数是
@SuppressLint("ValidFragment")
public SideMenuFragment(Context mContext) {
this.mContext=mContext;
}
有些时候ANR会出现这个问题的原因。有时它的工作很好,有时它会导致问题
这个例子在Kotlin上,但你也可以在Java中完成
abstract class BaseFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}
override fun onDestroyView() {
super.onDestroyView()
}
override fun onResume() {
super.onResume()
}
}
class ApproveFragment : BaseFragment() {
companion object {
fun newInstance(orderId: Int) = ApproveFragment().apply {
arguments = Bundle(1).apply {
putInt("ORDER_ID", orderId)
}
}
}
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater?.inflate(R.layout.fragment_approve, container, false)
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
}