スポンサーリンク

2016年3月22日火曜日

Android SDK をアップデートしたら Genymotion エミュレータが使えなくなってしまった

Androidアプリの開発においてエミュレータは非常に便利です。ある程度まではエミュレータを使って開発するのが常套になっています。

自分は本家GoogleのAndroidエミュレータ(AVD)とGenymotionのエミュレータを使い分けていますが、やはりどうみてもGenymotionの方がよく出来ています。高速だし、Google Playを使う方法も確立されているので、Androidのほとんどの機能はGenymotion上でテストすることができます。

遅かったAVDも最近のバージョンアップでそこそこ高速になりましたが、まだしょっちゅうクラッシュするし、意味不明なLogCatエラーメッセージを大量に吐き出したりする昔からある問題は全く直っていません。やはり使い勝手はGenymotionに劣ります。何よりもGoogle Playを使った機能(アプリ内購入とか)がテストできないのは致命的です。

さてGenymotionですが、最近のAndroid SDKのバージョンアップで使えなくなってしまいました。正確に言うと、ベータチャンネルで公開されているAndroid Platform-Toolsをv24 rc1にするとデバイスを認識できなくなってしまうのです。adb devices を実行すると以下のようなメッセージが出ます。

[D:\]adb devices
List of devices attached
adb server version (32) doesn't match this client (35); killing...
error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: 通常 、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 (10048)
could not read ok from ADB Server
* failed to start daemon *
error: cannot connect to daemon


まあまだベータバージョンだし、よくあることです。暫く待ってみるかと思ったのですが、調べてみたら簡単に直ることが分かりました。



Genymotionはデフォルトで独自のADBツールを使っているのですが、これをAndroid SDKのものに変えてやるだけです。やり方は、Genymotionのコントロールパネルを起動し、Settingsを開きます。ADBタブを選択して、"Use custom Android SDK tools" にチェックを入れ、Android SDKの場所を指定します。これでまたGenymotion、使えるようになりました。




追記

GenymotionをGoogle Play化する時にzipファイル(ARM TranslationやGapps)をエミュレータ上にドラッグ&ドロップしますが、この時Android SDKのADBを使っているとうまくいきません。こんなエラーが出てしまいます。この時は一時的に元に戻す必要があります。



またAndroid Studioもv2.1になりツール類も一新されました。しかしやはりGenymotionのADBとは相性が悪いようで、上の設定をしてやらないとAndroid Studioから認識できませんでした。


0 件のコメント :

コメントを投稿