Falta el constructor para DialogPreference

Estoy en el process de convertir un proyecto en Kotlin. Cuando convertí las Preferences de Diálogo, la aplicación se bloqueó con un "no tal método", aparentemente falta el constructor. Este es el post de error:

05-26 20:13:32.799 6019 6019 E AndroidRuntime: Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet] 05-26 20:13:32.799 6019 6019 E AndroidRuntime: at java.lang.Class.getConstructor0(Class.java:2204) 05-26 20:13:32.799 6019 6019 E AndroidRuntime: at java.lang.Class.getConstructor(Class.java:1683) 05-26 20:13:32.799 6019 6019 E AndroidRuntime: at android.preference.GenericInflater.createItem(GenericInflater.java:378) 

La class tiene el constructor de 2 arguments del que el post de error se queja:

 class FilterPreferenceFragment(context: Context, attrs: AttributeSet?) : BaseDialogPreference(context, attrs) { /* */ } 

Y la class base:

 abstract class BaseDialogPreference(context: Context, attrs: AttributeSet?) : DialogPreference(context, attrs) { /* */ } 

¿Alguna sugerencia?

Editar:

en caso de que sea útil, aquí está el bytecode generado por el comstackdor de Kotlin:

  // access flags 0x1 public <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V @Lorg/jetbrains/annotations/NotNull;() // invisible, parameter 0 @Lorg/jetbrains/annotations/Nullable;() // invisible, parameter 1 L0 ALOAD 1 LDC "context" INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull (Ljava/lang/Object;Ljava/lang/String;)V L1 LINENUMBER 12 L1 ALOAD 0 ALOAD 1 ALOAD 2 L2 LINENUMBER 13 L2 INVOKESPECIAL android/preference/DialogPreference.<init> (Landroid/content/Context;Landroid/util/AttributeSet;)V RETURN L3 LOCALVARIABLE this Lcom/example/exampleapp/app/preference/BaseDialogPreference; L0 L3 0 LOCALVARIABLE context Landroid/content/Context; L0 L3 1 LOCALVARIABLE attrs Landroid/util/AttributeSet; L0 L3 2 MAXSTACK = 3 MAXLOCALS = 3 @Lkotlin/Metadata;(mv={1, 1, 6}, bv={1, 0, 1}, k=1, d1={"\u0000$\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\u0008&\u0018\u00002\u00020\u0001B\u0017\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0008\u0010\u0004\u001a\u0004\u0018\u00010\u0005\u00a2\u0006\u0002\u0010\u0006J\u0010\u0010\u0007\u001a\u00020\u00082\u0006\u0010\u0009\u001a\u00020\nH\u0014\u00a8\u0006\u000b"}, d2={"Lcom/example/exampleapp/app/preference/BaseDialogPreference;", "Landroid/preference/DialogPreference;", "context", "Landroid/content/Context;", "attrs", "Landroid/util/AttributeSet;", "(Landroid/content/Context;Landroid/util/AttributeSet;)V", "onBindView", "", "view", "Landroid/view/View;", "production sources for module ExampleApp"}) // compiled from: BaseDialogPreference.kt 

Resulta que estaba buscando en la class equivocada. El error vino de esta otra preference:

 class BaseCheckBoxPreference(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : CheckBoxPreference(context, attrs, defStyleAttr) { /* */ } 

Para resolver el locking tuve que eliminar el tercer argumento del constructor:

 class BaseCheckBoxPreference(context: Context, attrs: AttributeSet? = null) : CheckBoxPreference(context, attrs) { /* */ } 

Alternativamente, podemos definir un constructor secundario que solo tome 2 arguments, pero para mi caso de uso solo necesité uno con 2 arguments. El constructor secundario sería

 class BaseCheckBoxPreference(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : CheckBoxPreference(context, attrs, defStyleAttr) { constructor(context: Context, attrs: AttributeSet? = null) : this(context, attrs, 0) /* */ } 
  • ¿Cuál es la razón para usar el sufijo "Kt" en las classs de Kotlin?
  • Android Kotlin: Error Referencia no resuelta: DaggerAppComponent
  • ¿Por qué una propiedad tipada genérica se puede anular?
  • cómo analizar el código de kotlin?
  • Obteniendo exception de retrofit El tipo de retorno de método no debe include una variable de tipo o comodín en kotlin
  • No se puede enviar datos de formulario / múltiples con Volley
  • Conmutación de Observables
  • Kotlin: hacer visible una function interna para testings unitarias
  • Kotlin - lateinit VS Cualquiera? = nulo
  • Comportamiento impar de TestObserver al suscribirse a un Asunto
  • Interoperabilidad de Java: aplique @JvmName a los buscadores de properties en la class de interfaz o abstracta