KOTLIN -> InstantiationException:无法实例化片段确保 class 名称存在,是 public,并且有一个空构造函数是 public
KOTLIN -> InstantiationException: Unable to instantiate fragment make sure class name exists, is public, and has an empty constructor that is public
我在我的 android 应用程序中使用 kotlin 并收到此崩溃报告:
android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment DetailsFragment: make sure class name exists, is public, and has an empty constructor that is public.
这是我的 DetailsFragment class。
class DetailsFragment() : Fragment() {
private var workflowId: String? = null
private var workflowData: WorkflowData? = null
private var releaseAtStr: String? = null
public fun init(workflowId: String,
workflowData: WorkflowData,
releaseAtStr: String? = null) {
this.workflowId = workflowId
this.workflowData = workflowData
this.releaseAtStr = releaseAtStr
}
private var context: BaseActivity? = null
override fun onAttach(context: Context?) {
super.onAttach(context)
if (context is BaseActivity?) {
this.context = context
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) =
inflater?.inflate(R.layout.fragment_approval_details, container, false)
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
loadingOverlay?.show()
populateWorkflowHistory()
}
}
知道如何修复它或至少重现它吗?
谢谢。
尽量不要在片段中调用构造函数:
class DetailsFragment : Fragment() {
private var workflowId: String? = null
private var workflowData: WorkflowData? = null
private var releaseAtStr: String? = null
public fun init(workflowId: String,
workflowData: WorkflowData,
releaseAtStr: String? = null) {
this.workflowId = workflowId
this.workflowData = workflowData
this.releaseAtStr = releaseAtStr
}
我在我的 android 应用程序中使用 kotlin 并收到此崩溃报告:
android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment DetailsFragment: make sure class name exists, is public, and has an empty constructor that is public.
这是我的 DetailsFragment class。
class DetailsFragment() : Fragment() {
private var workflowId: String? = null
private var workflowData: WorkflowData? = null
private var releaseAtStr: String? = null
public fun init(workflowId: String,
workflowData: WorkflowData,
releaseAtStr: String? = null) {
this.workflowId = workflowId
this.workflowData = workflowData
this.releaseAtStr = releaseAtStr
}
private var context: BaseActivity? = null
override fun onAttach(context: Context?) {
super.onAttach(context)
if (context is BaseActivity?) {
this.context = context
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) =
inflater?.inflate(R.layout.fragment_approval_details, container, false)
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
loadingOverlay?.show()
populateWorkflowHistory()
}
}
知道如何修复它或至少重现它吗?
谢谢。
尽量不要在片段中调用构造函数:
class DetailsFragment : Fragment() {
private var workflowId: String? = null
private var workflowData: WorkflowData? = null
private var releaseAtStr: String? = null
public fun init(workflowId: String,
workflowData: WorkflowData,
releaseAtStr: String? = null) {
this.workflowId = workflowId
this.workflowData = workflowData
this.releaseAtStr = releaseAtStr
}