Невозможно создать фрагмент (не удалось найти конструктор фрагмента) - PullRequest
0 голосов
/ 12 марта 2019

Я сталкиваюсь с этой проблемой на некоторых устройствах и получаю сообщение об ошибке в аналитике сбоев.Эта проблема возникает, когда приложение имеет проблемы с ANR, и ошибка

Невозможно запустить действие ComponentInfo {com.qwykr.dryver.base / com.qwykr.dryver.base.activities.MainActivity}: android.support.v4.app.Fragment $ InstantiationException: Невозможно создать экземпляр фрагмента com.qwykr.dryver.base.fragments.SlideFragment: не удалось найти конструктор фрагмента

, и ошибка появляется в строке

@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 возникает с причиной этой проблемы.иногда хорошо работает, а иногда и вызывает проблему

1 Ответ

0 голосов
/ 12 марта 2019

Этот пример на 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)

}

...