在xml定义的活动中找不到onClick方法

我试图将一个函数链接到AndroidStudio中的按钮的onClick属性,但出于某种原因,系统无法识别我编码的方法。

有趣的是,当我用Java编写代码时,它工作正常。 在Kotlin它不是。 我更新了我的Kotlin并检查了它的配置,但是我找不到问题。 我的朋友尝试了我在Linux电脑上做的同样的事情,并且为他工作。 我有一个Mac OS,我不知道是否有一些额外的配置照顾。 谁能帮我?

这是我的简单活动:

import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun sendMessage(view: View) { } } 

这是xml:

 

在build.gradle我有:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 

错误信息:

 Corresponding method handler 'public void sendMessage(android.view.View)' not found The onClick attribute value should be the name of a method in this View's context to invoke when the view is clicked. This name must correspond to a public method that takes exactly one parameter of type View. Must be a string value, using '\;' to escape characters such as '\n' or '\uxxxx' for a unicode character 

尝试添加

 tools:context="com.somepackage.MainActivity" 

到您的顶视图在XML中

它现在有效。 我不得不重新启动AndroidStudio。 我仍然不能使用设计选项卡中的属性窗口来添加函数,但是如果我直接编辑XML,它将起作用。