ポジティブ丸メガネ

3年目エンジニアです。

マカーの学生がEclipseからAndroid Studioに移行してアプリをリリースした話。

背景

1年半ほど前に、WindowsPCとEclipseを使ってAndroidアプリをリリースしていた。しかし、1年前に作業機をMacに変更したので、リリースしたアプリはほったらかしだった。ちなみにこれ(結局新しくリリースしたやつ、後述)。
ぷれれこ:録音機能付きプレゼンタイマー - Google Play の Android アプリ

今回なんとなく更新する気になった。そういえば以前自分で研究室後輩たちに向けてAndroid Studioがキテるから使えっていうプレゼンをしていたのを思い出した。今見るとクソみたいなプレゼンだ。

www.slideshare.net

せっかくなのでEclipseからAndroid Studioに乗り換えて、アプリをアップデートしよう。

Android Studio

Android Studio と SDK Tools のダウンロード | Android Developers
これ。なんか昔使ってみようと思ったことがあったはずなんだけど、そのときはメジャーバージョンがまだ出てなかったから使わなかったような気がする。今は2.0のベータ版が出てるみたいなので、時代の流れを感じる。

なんかよくわからんが、Gradleというのを使うらしい。ライブラリの管理とかをEclipseではGUIでポチポチやってたけどそれをコードで書いている印象(あってる?)。なにやらリリース版とデバッグ版とか異なる機能を持つAPKも作成できるらしい、すごい。

とりあえずダウンロードしてインストール。数回クリックしただけで終わった。
f:id:seiya-orz:20151222132334p:plain
なんでもうUpdateのお知らせ来てんだよ、最新版入れたんじゃねーのかよとか思いましたが、今回はスルー。

さてEclipseからプロジェクトを移行しよう。なんか色々外部ライブラリとか使ってるので、Import機能使うとバグりそうな気がした。

ということで、新規でプロジェクト作って順番に書き換えていくスタイルを採用。

Blank Activityでプロジェクト作って、元のプロジェクトからsrcやらresやらをドラッグアンドドロップすればなんかいい感じになった。

ただ、外部の.soファイルを使ってたんだけど、それがうまく読み込めてない現象が発生した。具体的には、System.loadLibrary()を読んでるとこで落ちてる。調べてみるとAndroid Studioでは、「app/src/main/jniLibs」に放り込む必要があるらしいが、放り込んでも落ちる。ふむ、もうちょっと調べてみるとjniLibs/armeabiに放り込む必要があったらしい。なんじゃこりゃ。とにかくやってみたらうまく動いたのでまあいいか。

移行で詰まったのはこれくらい。あとはIDEの使い方に慣れないといけない。

ということでコードをちょこちょこいじってアプリを修正。リリースできる段階に至った。

リリース

上のメニューのBuild/Generate Signed Apk... というところからリリース用APKを作成できるとあったので、やってみた。
qiita.com

前やった時のKeystoreファイルもちゃんと残してあるし、いけるだろ!・・・完全フラグでした。

なんかエラー出てて、作れない。AliasかPasswordが違うようだ。うーむ、わからん。Aliasはもう絶対わからん。無理だ。詰んだ。

しかたない、アプリの公開中止して、新しいアプリとしてリリースするしか無い!ということで、あたらしくKeystoreファイル作ってリリースしなおしました。くそう。今回はちゃんとAliasとPassword覚えました、大丈夫。

ということで、既存のユーザ様(100人くらいしかいないけど)には申し訳ないが、新しいアプリとして出したので、こちらをお使いいただきたい。ごめんなさい。
ぷれれこ:録音機能付きプレゼンタイマー - Google Play の Android アプリ

これからは、暇があればAndroidでもアプリを作ろう。せっかく環境整えたし。やっぱりiOSよりAndroidのほうが慣れてるからレイアウトを組んだりコードを書くのに詰まらないんだよなー。

おわり。