Referencia no resuelta: kotlinx

Estoy intentando probar Kotlin y las extensiones de Kotlin para Android en Android Studio. Lo he intentado tanto en Android Studio v 1.5.1 en Ubuntu 14.04, y en Android Studio v 1.5.1 en OS X El Capitan con el mismo resultado.

Esto es lo que estoy haciendo:

  1. Instalo el complemento de Kotlin 1.0.0-beta-35950-IJ141-11
  2. Crea un nuevo proyecto en blanco de Android
  3. Convierta el file MainActivity a Kotlin (a través de help-> findaction-> convertir file a kotlin)
  4. Configurar el proyecto para Kotlin

Luego voy al file content_main.xml generado y agrego una identificación (hello) para el "¡Hola mundo!" Vista de text.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.gmail.npnster.mykotlinfirstproject.MainActivity" tools:showIn="@layout/activity_main"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" android:id="@+id/hello" /> </RelativeLayout> 

Luego, en MainActivity convertida, agrego una línea para establecer TextView. (mostrado a continuación). Android Studio luego me pide (a través de alt-enter) para insert esta línea (también se muestra a continuación)

 import kotlinx.android.synthetic.main.content_main.* 

Entonces, en este punto, todo parece estar bien

pero cuando bash comstackr esto, me sale

 Unresolved reference: kotlinx Unresolved reference: kotlinx Unresolved reference: hello 

Tenga en count que no instalé el complemento Kotlin Android Extensions. Desde hace un par de días, ahora se supone que se includeá en el enchufe principal y se marcará como obsoleto. (De hecho, si intenta instalarlo cuando tiene el último complemento, no se instala nada nuevo)

¿Alguien ve lo que estoy haciendo mal?

Actividad principal

 import android.os.Bundle import android.support.design.widget.FloatingActionButton import android.support.design.widget.Snackbar import android.support.v7.app.AppCompatActivity import android.support.v7.widget.Toolbar import android.view.View import android.view.Menu import android.view.MenuItem import kotlinx.android.synthetic.main.content_main.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val toolbar = findViewById(R.id.toolbar) as Toolbar setSupportActionBar(toolbar) print("setting text view value to hey") hello.text = "hey" val fab = findViewById(R.id.fab) as FloatingActionButton fab.setOnClickListener { view -> Snackbar.make(view, "Replace this with your own action", Snackbar.LENGTH_LONG).setAction("Action", null).show() } } override fun onCreateOptionsMenu(menu: Menu): Boolean { // Inflate the menu; this adds items to the action bar if it is present. menuInflater.inflate(R.menu.menu_main, menu) return true } override fun onOptionsItemSelected(item: MenuItem): Boolean { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. val id = item.itemId //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true } return super.onOptionsItemSelected(item) } } 

Agregue kotlin-android-extensions en las dependencies de nuestro buildscript:

1. En tu build.gradle a nivel de proyecto

 buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } } 

y aplique el kotlin-android-extensions :

2. En tu build.gradle a nivel de module

 apply plugin: 'kotlin-android-extensions' 

Respuesta original:

Lo más probable es que sea un error en el complemento de Kotlin. He archivado un problema en su rastreador.

Cuando use Android Studio 2.0 y kotlin 1.0.1-2, se le ocurrirá lo mismo. No puede configurar las extensiones de android de Kotlin en build.gradle de su proyecto, debe configurar las extensiones de android de Kotlin en cada build.gradle de cada module así:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' buildscript { ext.kotlin_version = '1.0.1-2' repositories { jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } } android { compileSdkVersion 23 buildToolsVersion "24.0.0 rc2" defaultConfig { applicationId "com.dazd.kotlindemo" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.3.0' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } 

Lo más importante es que, incluso con el complemento kotlin incluido la extensión de Kotlin para Android, también necesita configurar las extensiones de kotlin-android en bulid.gradle de su module de esta manera:

 ... apply plugin: 'kotlin-android-extensions' ... classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 

Por supuesto, puede configurar el classpath del plugin de kotlin en build.gradle de su proyecto.

No puedo encontrarlo en la documentation oficial , pero debe aplicar el complemento agregando lo siguiente a su file build.gradle :

 apply plugin: 'kotlin-android-extensions' 

El bloque de construcción que contiene la dependencia kotlin-android-extensions aparentemente debe estar en el module de aplicación build.gradle, no en el de nivel superior.

Encontré por qué el mío no funcionó. Mis bloques se extraviaron y moviendo el bloque de buildscript{} antes de los complementos de la siguiente manera lo conseguí funcionando:

 buildscript { ext.kotlin_version = '1.0.0-beta-3595' ext.anko_version = '0.8.1' repositories { jcenter() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" } } apply plugin: 'com.android.application' apply plugin: 'kotlin-android' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.kotlin" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } sourceSets { main.java.srcDirs += 'src/main/kotlin' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" compile "org.jetbrains.anko:anko-sdk15:$anko_version" compile "org.jetbrains.anko:anko-support-v4:$anko_version" } 

Así es como funcionó para mí. Cuando configuré Kotlin por primera vez en Project, seleccioné la versión 1.1.2-3 en lugar de 1.1.2-4 y agregué la siguiente línea en el file de la aplicación build.gradle

 apply plugin: 'kotlin-android-extensions' 

después de eso, sincronicé la construcción y funcionó como se esperaba.

  • Android Kotlin Extension super calling
  • En Kotlin Lenguaje de progtwigción importancia de varargs en términos de usos
  • Deshabilitar la generación META-INF / * en el proyecto gradle android library kotlin
  • Android Kotlin: java.lang.NoClassDefFoundError: Resolución fallida de: <KotlinObject>
  • Función de extensión de llamada dentro de la class Java como cualquier operador de RX
  • Android ProgressBar indeterminado no aparece
  • La interoperabilidad Varargs Kotlin Java no funciona correctamente
  • Error: ejecución fallida para la tarea ': aplicación: limpiar'. No se puede borrar el file
  • Cambiar Observable desde AutoCompleteTextView a EditText
  • kotlin jvmname ignorado por Gradle?
  • ¿Puedo usar bibliotecas Java de terceros (.jar) para el desarrollo de Android con Kotlin?