FragmentTransaction no comstackrá en Kotlin Android Project

En el process de aprendizaje de Kotlin con Android, la falla en la compilation y el text de error en general inútil me han dejado perplejo. El text de error dice lo siguiente:

No se puede invocar ninguna de las siguientes funciones con los arguments suministrados. add (Fragment !, String!) definido en android.app.FragmentTransaction add (Int, Fragment!) definido en android.app.FragmentTransaction

En ambos casos, ¡el Fragmento! el text se resalta en rojo. Soy consciente de que Kotlin se refiere a las classs de Java con un!, Pero no puedo entender por qué no está contento con la forma en que proporcioné las inputs.

Cualquier idea sería muy apreciada.

fun displayEditRoutine(){ //Set our variables var ft = fragmentManager.beginTransaction() //Basic "newInstance" constructor to avoid omitting necessary variables var frag = EditRoutine.newInstance(mRoutineID,this) //Here is where error occurs ft.add(R.id.are_container, frag).commit() } 

La class EditRoutine a la que se hace reference:

 class EditRoutine : Fragment() { //Variables private var mRoutineID: String? = null private var mListener: OnEditRoutineFragmentListener? = null //Views @BindView(R.id.fer_routineName) internal var vRoutine: TextInputEditText? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (arguments != null) { mRoutineID = arguments.getString(Keys.b_RoutineID) } } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { val v = inflater.inflate(R.layout.fragment_edit_routine, container, false) ButterKnife.bind(activity) return v } // TODO: Rename method, update argument and hook method into UI event fun onButtonPressed(): Unit{ if (mListener != null && vRoutine!!.text.toString() != "") { val contentValues = ContentValues() contentValues.put(Routine.Table.KEY_NAME, vRoutine!!.text.toString()) //Pass the values into the interface mListener!!.onDoneClicked(contentValues) } } override fun onAttach(context: Context) { super.onAttach(context) if (context is OnEditRoutineFragmentListener) { mListener = context } else { throw RuntimeException(context.toString() + " must implement OnEditRoutineFragmentListener") } } override fun onDetach() { super.onDetach() mListener = null } //Internal Methods //Interface interface OnEditRoutineFragmentListener { // TODO: Update argument type and name fun onDoneClicked(cv: ContentValues) } companion object { /** * @param routineID = passed ID. If null, don't load content values * * * @return A new instance of fragment EditRoutine. */ fun newInstance(routineID: String, ctx: Context): EditRoutine { val fragment = EditRoutine() val args = Bundle() args.putString(Keys.b_RoutineID, routineID) fragment.arguments = args return fragment } } 

Intenta esto: ft.add(R.id.container_all, frag as Fragment).commit()

JvmStatic: esta anotación es obligatoria ( documentation )

object compañero {

 /** * @param routineID = passed ID. If null, don't load content values * * * @return A new instance of fragment EditRoutine. */ @JvmStatic fun newInstance(routineID: String, ctx: Context): EditRoutine { val fragment = EditRoutine() val args = Bundle() args.putString(Keys.b_RoutineID, routineID) fragment.arguments = args return fragment } 

}

  • Adaptador de enlace de Android no funciona para CustomView
  • ¿Cómo manejar correctamente los valores de Byte superiores a 127 en Kotlin?
  • Funciones de extensión Kotlin por tipo
  • Cómo analizar JSON manualmente en Kotlin?
  • Problemas al intentar generar la aplicación Kotlin con Android Studio
  • Kotlin - Henetworkinga de Java Class que implementa Parcelable
  • Botones de acceso del layout inflados programáticamente dentro de otro layout
  • ¿Cómo puedo verificar el tipo genérico en Kotlin?
  • Kotlin: cómo acceder a las properties en el constructor
  • Cómo leer y escribir files txt en android en kotlin
  • ¿Cómo tener un setter personalizado con verificación del parámetro de validez?