Android Studio 3.0 que respalda a Kotlin: actividad como context

Desde el lanzamiento de Android Studio 3.0 Canary, he estado tratando de aprender Kotlin y hay algo que no puedo entender. Intentaba hacer una actividad simple con un button y una vista de text. No puedo entender por qué Android Studio no puede reconocer la actividad como un context. En mi código trato de hacer un Toast, pero AS me da un error cuando pongo esto como el context en el parámetro.

El error es: "No se puede invocar ninguna de las siguientes funciones con los arguments suministrados". Y resalta el context en rojo

Aquí está el código:

class MainActivity : AppCompatActivity() { fun AppCompatActivity.toast(message: CharSequence) = Toast.makeText(this, message, Toast.LENGTH_LONG).show() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val button = findViewById(R.id.mainButton) as Button button.setOnClickListener{ this@MainActivity.toast("proof") Log.e("asd","proof") } } } 

Lo que pasa es que cuando ejecuto el código, no obtengo ningún defecto ni exception en el time de ejecución. Es solo Android Studio que no reconoce esto como el context

En Android Studio 3.0 f usa com.android.support:appcompat-v7:25.0.1 , AppCompatActivity no se reconoce como un "Objeto de context".

La class AppCompatActivity extiende una FragmentActivity que, a su vez, extiende BaseFragmentActivityJB

Como Android Studio 3.0 no puede encontrar esa class, no aceptará AppCompatActivity como el context.

La actualización de appcompat-v7 a 25.3.1 o posterior debería solucionar el problema.

El error ocurre porque ha declarado toast como método de extensión en AppCompatActivity (porque ha puesto AppCompatActivity. antes de su nombre), y también como método (porque está declarado dentro de su class). Todo debería comenzar a funcionar si mueve la statement del método toast fuera de la class MainActivity . También puede eliminar this@MainActivity de su código; es networkingundante

  • AutoValue con GsonTypeAdapter en Kotlin
  • ¿Kotlin no se puede anular valor puede ser nulo?
  • Solo el último elemento agregado a RecyclerView en Android (Kotlin)
  • RuntimeException si minifyEnabled es verdadero con la class ViewModel
  • Advertencia y abandono de Kotlin / Quasar Fiber
  • ¿Cómo combinar dos sets de enumeraciones en kotlin con la misma interfaz padre?
  • ¿Cuál es la forma legítima de get annotations de una propiedad pura de Kotlin a través de la reflexión, siempre faltan?
  • Diferencia entre Delegates.notNull y lateinit Kotlin
  • Manera más limpia de reasignar el valor de la variable cuando la condición se cumple en Kotlin
  • Android numberPicker pasando widget de Android como valor
  • Inicializador de propiedad de múltiples líneas / complejo sin lambda