J'essaye d'essayer Kotlin et les extensions Kotlin Android dans Android Studio. J'ai essayé cela à la fois dans Android Studio v 1.5.1 sur Ubuntu 14.04 et dans Android Studio v 1.5.1 sur OS X El Capitan avec le même résultat.
Voici ce que je fais:
- J'installe le plugin Kotlin 1.0.0-beta-35950-IJ141-11
- Créer un nouveau projet Android vierge
- Convertir le fichier MainActivity en Kotlin (via help-> findaction-> convertir le fichier en kotlin)
- Configurer le projet pour Kotlin
Je vais ensuite dans le fichier content_main.xml généré et j'ajoute un identifiant (bonjour) pour le "Hello World!" Affichage.
<?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>
Ensuite, dans le MainActivity converti, j'ajoute une ligne pour définir le TextView. (indiqué ci-dessous). Android Studio me demande ensuite (via alt-enter) d'insérer cette ligne (également illustrée ci-dessous)
import kotlinx.android.synthetic.main.content_main.*
Donc à ce stade tout semble bien
mais quand j'essaye de compiler ça, j'obtiens
Unresolved reference: kotlinx
Unresolved reference: kotlinx
Unresolved reference: hello
Notez que je n'ai pas installé le plugin d'extensions Kotlin Android. Il y a quelques jours, cela est censé être inclus dans le plug-in principal et est marqué comme obsolète. (En fait si vous essayez de l'installer lorsque vous avez le dernier plugin, rien de nouveau n'est installé)
Quelqu'un voit ce que je fais de mal?
Activité principale
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)
}
}