前に試した時はEclipseだったのだけど今はAndroidStudioっていう統合開発環境があるのね
”hello world”しか作ったことないからEclipseだろうがAndroidStudioだろうが馴染みがないことにかわりはないのだけどね
早速AndroidStudioをインストール
Gradleって何? → buildツールの名前なのね Gradle Scriptsっていうのがbuildスクリプトで
Activity? → iOSでいうViewのことのようだ
AndroidManifest.xml? (そういや選挙ですっかり”マニフェスト”って言わなくなったな ”守らないもの”っていうマイナスのイメージが残りすぎたものな)
いきなり知らない単語ばかりで外国に来たようだ
試しに新しいprojectを作って緑の三角ボタンで実行っと
おお、これだけで"hello world"って表示されるのね
まずは”hello world"を表示するところまでと思ってたら1時間で終わってしまった。
もうちょっとやってみようとactivity.main.xmlのレイアウトを表示しようとすると
"Rendering Problems: Class could not be instantiated: - android.support.v4.widget.DrawerLayout"
というエラーが出て表示できない
SDK versionが低いとエラーになるようだ API8(Froyo対応)でやってたからだな
File→Project StructureのappのFlavorsタブからMin Sdk Versionを変更。
対応SDKを最新のAPI22(Lollipop)に変更して一度projectをcloseして再度openしたらエラーが消えてちゃんと画面のレイアウトが表示された
でもその後API8(Froyo)に戻して実機で実行しようとすると
今度はFailure [INSTALL_FAILED_OLDER_SDK]
で実行できない…
どうやら実機で動かす時はProject StructureのappのFlavorsタブじゃなくて
Gradle Scriptsのbuild.gradleというファイルの設定が効いてるらしい。
見ると
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.welfapp.test1"
minSdkVersion 8
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
となってるので
targetSdkVersionの22を8にしたらFroyoの実機で動いた。
さぁ、開発環境はできた。
実機もFroyoとKitKatのスマホがある。(G,H,I,J,Lとタブレットも欲しいとこだけど、そこまでまじめにvalidationをする気はないからいいや)
作ろうと思えば何でも作れるぞ。
あとは腕さえあればなぁ…
慣れてないこともあるけどiOSよりAndroidの方が難しそう…
プラットフォームやversionがいくつもあるのも難だなぁ
Android 2.2から5までサポートしようとしたらAPI8からAPI22までだものなぁ
iOS6,7,8の比じゃない
しかし、よく考えてみたらJavaもほとんど使ったことないのだった
OnClickListenerでボタンクリックのイベントを処理しようとしてonClickが一回だけしか呼ばれなくてさっそくはまった…
1日かかってsetContentView(R.layout.activity_main)をonCreate()とonClick()の2箇所でやってるのが原因と判明
setContentViewはViewごとに1回しか呼ばない方がいいようだ。
Androidの作法は難しいな…
レイアウトで
「The following classes could not be instantiated: - android.support.v7.internal.widget.ActionBarOverlayLayout」
とエラーが出てレイアウトの表示がされないときは
res/values/styles.xml の"Theme"を"Base.Theme"に書き換えるといい
< style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar" >
projectのバックアップをとろうとディレクトリ丸々zipでとっておいて、展開して元に戻そうとしたらprojectが開けない…(ずっとグルグルしてる…)
スナップショットみたいに作業の途中の段階で丸ごと保存しておきたいのだけどできないのか? たまたまか?
しかし、思ったように画面のレイアウトができない
全然WYSIWYGじゃなくてXMLを直いじりだものなぁ
今思うとInterfaceBuilderよくできてるわ
開発環境は完全にiOSの勝ちだな
ちょっと複雑な画面を作ったら動かそうとするとAndroidStudioが”応答なし”になるし、消耗してだいぶやる気がなくなった