<2018年版>Android開発環境をLinux(ArchLinux)に導入
Android SDKなどの開発環境をLinuxにインストールする。
Deprecatedになってしまったコマンドラインツール群
「LinuxでAndroid SDKを使う!」となれば、コマンドでガリガリ開発できるとワクワクしている人もいるだろう。実際私もかなり楽しみにしていた。
しかしながら!!!コマンドツールはdeprecatedになってしまったのである!!!
deprecatedになっただけでなく、ビルド機能などもバッサリ削除されてしまった。
従って、コマンドラインのみでAndroid開発を行うのは実質不可能となってしまった。
「For manual SDK, AVD, and project management, please use Android Studio.」というのがGoogleの方針らしい。
仕方ないのでAndroid Studio
仕方がないのでIDEを使うほかない。全く悲しい限りだ。
では簡単にインストール方法を。
Android Studioのダウンロード
公式サイトからダウンロードする。
Android Studio と SDK ツールをダウンロードする | Android Studio
Android Studioのインストール
落としたzipを展開するだけ。ただし、必ず書き込み権限のある場所に展開すること。
$ unzip android-studio-ide-171.4443003-linux.zip -d ~/android/
ここでは~/androidに展開する。
初期設定
終わったら、~/android/android-studio/bin/studio.shを実行。すると、IDEが立ち上がる。
UIのスタイルやSDKのインストール先を聞かれるのでウィザードに従ってすすめる。
ここでは~/android/sdkにSDKをインストールした。
プロジェクトを作ってみる
終わると下のような画面が出る。
試しにプロジェクトを作ってみよう。「Start a new Android Project」を選択する。
とりあえず全てデフォルトで作ってみた。
ところが、いきなり下側にエラーが出ている。
自動でインストールされたSDKのAPI Versionが27なのに、指定されているバージョンが26であるのが原因の模様。
「app/build.gradle」を編集する。
以下のように「compileSdkVersion」と「targetSdkVersion」を「27」に変える。
さらに、忘れてはいけないのはビルドツールのバージョンをSDKバージョンと揃えることだ。
以下のように「buildToolsVersion」を「27.0.3」に、サポートライブラリのバージョンを「27.0.2」にする。
これでビルド(Make Project)してみると、特に失敗すること無く終わる。
試しに実行…ところが
試しに実行してみよう…と思うと、なんと「Run」ボタンがグレーアウトしてしまっている。
これは、GradleプロジェクトがAndroidStudioに認識されていないことが原因らしい。
右ペインから「Gradle」ウィンドウを開き、「Refresh all Gradle Project」(更新ボタン)を押す。
さらに、メニューの「Tools」→「Android」→「Sync Project with Gradle Files」を押す。
すると、Runボタンが押せるようになる。
AVDの作成も一苦労
実機がある場合はあとはUSB接続からのUSBデバッグ許可でデバッガなどが使えるようになる。
ここではエミュレーターを使ってみよう。
Runボタンを押すと「Select Deployment Target」というウィンドウが出てくるが、右下に「Create New Virtual Machine」というボタンがあるので押す。
ハードウェア、システムイメージは自分の必要に合わせて選択する。(NDKを利用する場合でもエミュレータはx86のもので構わない。)
最後が重要で、「Emulated Performance」を「Software - GLES 1.1」にしなければ動かないことがある。(当方ではHardwareにするとSEGVで落ちた。)
これでエミュレータを試しに起動してみると、エラーが出て動かない。
EventLogを見てみると、ドライバのロードに失敗している模様。
調べたら解決法があった。
これで起動するようになった。
まとめ
コマンドラインで開発できないのは残念だった上に、IDEを動かすにも何かと手間がかかったりと、すっかりAndroidStudioが嫌いになってしまった。 IDEを推進するならはじめからうまく動いてほしいものだ。(ここまでたどり着くのに2時間くらいかかった)