Метод не находится, хотя он публичный (Kotlin)

В Kotlin, насколько я понимаю (только учусь), если не указано обратное, метод публичен. У меня метод setOnClickListener никаких подробностей не имеет, но, тем не менее, XML при попытке привязать его к кнопке найти его не может:

Corresponding method handler 'public void setOnClickListener(android.view.View)' not found

Как сделать setOnClickListener видимым? Код ниже

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val button: Button = findViewById(R.id.button)

        button.setOnClickListener {
            val projectDirAbsolutePath = Paths.get("").toAbsolutePath().toString()
            val resourcesPath = Paths.get(projectDirAbsolutePath, "/0/storage/emulated/tmp")
            val paths = Files.walk(resourcesPath)
                .forEach { item -> FileWriter("/0/storage/emulated/jjj.txt").use { it.write("$item") } }
        }
    }
}

Ответы (1 шт):

Автор решения: ЮрийСПб

Методы да, по умолчанию публичные. Но вы путаете объявление своего метода с вызовом уже имеющегося, куда вы передаёте экземпляр аномимного класса в виде лямбды.

Если опустить то, что указывать метод клика через разметку не стоит (если вы не используете data-binding) вам надо объявить в классе активити новый метод и на него ссылаться в разметке. Что, опять таки, может быть излишним, т.к. у вас в коде слушатель клика и так уже повешен на кнопку программно. Т.е. можно просто из разметки удалить его и всё будет работать.

→ Ссылка