u-ryo's blog

various information for coding...

Category: Android studio

Test Failed on AndroidStudio

| Comments

Android Studio(2.3.1)で久し振りにtestを動かしてみると、

1
Caused by: java.lang.ClassNotFoundException: android.view.View$OnClickListener

と言われて動かなくなりました。 instrumentation testではなくフツーのtestですjunit4とmockitoの。 java.lang.NoClassDefFoundError:android and junit testを見付けて、えーとか思いつつもやってみたら、確かに直りました。

1
$ rm -rf .gradle

追記

projectをcleanした後、いくらbuildしても「databinding classが見つからない」と言われて困った時にも効きました。

Kotlin KOTOHAJIME

| Comments

Kotlin事始め

最初、title間違えました。 タイプミスです。 Ergodox EZ(キー配列をカスタマイズ出来るキーボード)が必要かもしれません...

Android開発を、というかIoTに乗ってSmart Glass(Vuzix M100)の アプリ開発を任命付けれられています。 それはそれでありがたいのですが、 今更ながらAndroid開発を学んでいます。 素のAndroid Javaを使う、というのはあまりにもイケてなさそうなので、 いちいちon何々なんてやってられませんよ、ということで、 Kotlinを使ってイマドキのReactive Programmingを、 と思っています。 Kotlinやってると、Groovyでもいいんじゃないの? と思ってしまうのですが、 殊Androidについては、同梱libが大きくなってしまうなど、 やはり後発の強みもあってKotlinのようです。 ただ、Android開発者がJava loveだそうで、 今後のJava8の取り込みようによっては、 Javaだけでも行けるのでは? という気も少しします。 しかしそれは普及率を考えるとまだまだ遠いので、 今はやはりKotlinかと。

しっかし、Android開発って結構めんどいんですね。 IDEがないと開発できないって、 古いtypeの人間としてはそこから苦痛なんですが...

最初は、森洋之,基本からしっかり身につくAndroidアプリ開発入門 Android Studio 2.x対応 プロが本気で教えるアプリ作りの基本「技」 (ヤフー黒帯シリーズ),SBクリエイティブ,2016.7 を間違い直しながら写経することで Android開発を「Hello World」から卒業してから、 長澤太郎,Kotlinスタートブック,リックテレコム,2016.7 を写経しています。 そこでハマったことを。

  1. 実行しても、エラーメッセージを吐かずにemulatorが一瞬立ち上がった後終了 → Run対象をMainActivityTestにしていたから
  2. Dagger2でinjectionするようにしたらprofileImageUrlを取れなくなった → .dagger.ClientModule#provideRetrofit.addConverterFactory(GsonConverterFactory.create(gson))gsonを抜かしてしまっていた
  3. Dagger2でinjectionしたtestでCastがこけてうまく行かない → build.gradletestInstrumentationRunner 'sample.qiitaclient.MockTestRunner'に変更しないとならないのと、RunEdit ConfigurationsAndroid TestsMainActivityTestSpecific instrumentation runner (optional):〜.qiitaclient.MockTestRunner に変更しないとならない

IDEに慣れてないので、fileばっかり見比べてました。downloadしたお手本sampleではDagger2 Testがうまく行くのに、何で自分のはうまく行かないんだろう、ってずっと悩んでました。IDEでのproject settingに問題があったとは。 stackoverflowのTest running failed: Unable to find instrumentation info for: ComponentInfo{} — error trying to test in IntelliJ with Gradleで見付けました。 こんなところに設定があるなんて、知りませんよー。