无法实例化片段(找不到片段构造函数)

问题描述 投票:0回答:1

我在某些设备上遇到此问题,并在崩溃分析中出现错误。这个问题出现在应用程序遇到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会出现这个问题的原因。有时它的工作很好,有时它会导致问题

android android-fragments android-fragmentactivity
1个回答
0
投票

这个例子在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)

}

© www.soinside.com 2019 - 2024. All rights reserved.