/var/log/messages

debugging with sixth sense

Kotlin な環境作るなど

以下を参考にしつつすすめています。

Install Jetbrains Plugin はボタンでした。M14 になるのかどうか。

ハロワ

以下見つつすすめてみます。

とりあえず、ふつーにハロワな project 作って Kotlin に convert する模様。メニューバーの Code –> Convert Java File to Kotlin File で云々、で良いのかどうか。

次に、メニューバーの Tools –> Kotlin –> Configure Kotlin in Project なのかどうか。これで build.gradle が Kotlin 対応になる模様。sync してどうなるか。

とりあえず

実行はできたので以下を確認しつつ控えを。

ええと、以下を追加したのですが翻訳エラーになっている模様。

1
import kotlinx.android.synthetic.activity_main.*

ええと、build.gradle の buildscript の中の dependencies に

1
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"

入れても駄目で、plugin 見てみるに Kotlin Extensions For Android というソレを発見して入れてみたところ、問題解決できたようです。いやはや。

以下なカンジで View が参照できる模様。

1
    main_text.setText("Hello World")

Button 付けてみた

レイアウトに main_button という id な Button を追加。以下なソレは動きました。

1
2
3
4
5
6
7
8
9
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstaceState)
    setContentView(R.layout.activity_main)
    main_button.setOnClickListener(object: View.OnClickListener {
        public override fun onClick(view: View) {
            Toast.makeText(view.getContext(), "button clicked", Toast.LENGTH_LONG).show()
        }
    })
}       

以下なリポジトリ確認してみます。

ソースは読めるんですが、build ができない。Java のバージョンが云々と言われてるのですが、さっきのハロワは動いたしなぁ。

以下で解決でした

とは言えその後も Gradle あたりの問題がいくつかあったりなんかして。

  • com.android.support:appcompat-v7:22.2.1 な記述に修正
  • buildToolsVersion の修正
  • compileSdkVersion、targetSdkVersion の修正

ソース読み

MainActivity.kt はまだ Java 風味です。

1
2
3
        getSupportFragmentManager().beginTransaction().add(R.id.container,
                RssFragment.newInstance("http://rss.asahi.com/rss/asahi/science.rdf") as Fragment)
                .commit()

as Fragment は cast ってことにしておこう。

このリポジトリのソース確認はエントリを改めたいと思います。良さげなもくもくネタですし。

Comments