読者です 読者をやめる 読者になる 読者になる

echo("備忘録");

IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。

Xamarinの導入

業務ではもっぱらVB.netなのですが、「やっぱりC#.netの方がいいなあ…」って感じながら作業してます。
昔はVB一本だったのですが、他の言語も覚えると「融通がきく」点が逆に「独特な言語」って感じてしまって、むしろコード記述が難しく感じます。


さて、そんな感じで業務でC#.netから離れているので、リハビリを兼ねてXamarinでスマホの開発でもやろうかな、と思いました。
しばらくスマホ開発からも離れていたので、こちらのリハビリにも良いかと思いまして。

1.インストール
で、インストールなのですが、ちょっとググったらこんな記事が…

ytabuchi.hatenablog.com

うーん、こりゃあ厄介そうだ…
とは言え、やらないと始まらないのですが。

とりあえず「プログラムの追加と削除」から「変更」をクリックして、

 ・Android ネイティブ開発キット (R10E、32ビット) 3GB
 ・Android SDK 1GB 未満
 ・Android SDK セットアップ (API レベル 19および21) 5GB
 ・Java SE 開発キット (7.0.550.13) 1GB

ココらへんを入れておけば大丈夫っぽい。(なお、UWPやWindows Store開発をやる場合、もっと必要です。)

あとは時間が経てば、インストール完了するはず。(まあ、これが結構時間を食うんですが…)

2.実機デバッグ環境構築
とりあえずインストールは完了しましたが、どうやらAndroidエミュレーターはクッソ重いらしく、実機デバッグにすべきとのこと。
幸いAndroidの実機は持っていたので、実機デバッグ環境を構築してみました。

Google USB Driverのインストール】
 [ツール]-[Android]-[Android SDK Manager]を選択するとAndroid SDK Managerが開くので、下の方にある[Extras]から「Google USB Driver」をインストール。

Android端末のUSBデバッグの有効化】
 [設定]-[端末情報]を開き、「ビルド番号」を連打すれば「開発者モード」になる(と思う)ので、その中の「USBデバッグを有効にする」にチェックを付ける。

android_winusb.infの変更】
 先程インストールしたGoogle USB Driverのフォルダ内に「android_winusb.inf」というファイルがあるので、この中の[Google.NTx86]と[Google.NTamd64]の2つのセクションに、以下の記載を追加する。

%SingleAdbInterface% = USB_Install, USB\VID_(自分のAndroidのVID)&PID_(自分のAndroidのPID)
%CompositeAdbInterface% = USB_Install, USB\VID_(自分のAndroidのVID)&PID_(自分のAndroidのPID)&MI_01

※自分のAndroidのVIDとPIDは「デバイスマネージャー」に表示されているAndroid端末のプロパティから[詳細情報]-[ハードウェアID]を選択すると確認することが出来ます。
android_winusb.infは管理者権限で編集ソフト(テキストエディタなど)を開かないと編集できません。

と、大抵のサイトでは「これでOK!」という事だったのですが、僕の環境ではダメで、デバイスマネージャーを確認した所、どうやらADBドライバのインストールも必要でした。

【ADBドライバのインストール】

  1. バイスマネージャでADBデバイス(「他のデバイス」に表示されていると思う)に「!」が表示されているので、右クリックから「ドライバソフトウェアの更新」を選択。
  2. 「どのような方法で…」と表示されたら、下の「コンピュータを参照して…」を選択。
  3. 「コンピュータ上のドライバ…」と表示されたら、下の「コンピュータ上のデバイスの一覧から…」を選択。
  4. 「次の一覧から…」は「すべてのデバイスを表示」を選択。し、「このハードウェアのために…」が表示されたら「ディスク使用」をクリックし、「製造元のファイルのコピー元」に、最初にインストールしたGoogle USB Driverのフォルダを指定する*1
  5. 「モデル」の一覧が表示されたら「Android ADB Interface」を選択。(このあと警告が出る場合があるが「はい」を選択でOK。)
  6. ドライバ更新が正常に終了すれば、Android実機の方で「USBデバッグを有効にしますか?(「このパソコンのRPAキーのフィンガープリント…)」という表示が出るので「OK」をクリック。(そのパソコンで今後も開発作業をするなら「このパソコンからの…」にチェックを入れておくと良いです。)

これでVSのデバッグ環境にAndroid名が表示できれば、めでたく実機デバッグが可能です!(表示されない場合、一度VSを再起動してみて下さい。)
これでバリバリ開発…


とはいかないんですよね、おそらく。


私の環境でもそうなんですが、他の方同様PCLプロジェクトを開こうとすると、原因不明のエラーが出まくりで、ネットの情報を色々調べて手は打ったんですが、まだ解決には至っていません…
(なお、下記の方が素晴らしいテンプレートを公開されています。私もこれでビルドが出来ました。)
ytabuchi.hatenablog.com

またiOSアプリは開発こそ可能ですが、結局デバッグにはMacが必要なので「それならXCodeで…」とも感じてしまいますし。
そうなるとAndroidですが、EclipseAndroid Studioに比べるとまだまだ発展途上な感は否めません。(C#Windows単体でスマホ開発が出来る、という点は魅力的ですけどね。)

とはいえ、「AndroidiPhoneなどのクロスプラットフォーム開発が可能」と言うのはやはり魅力的ですので、今後の発展に期待、って感じでしょうかね。

*1:僕の環境では「c:\android\sdk\extras\google\usb_driver」にありました。パスがわからない場合、Android SDK ManagerでGoogle USB Driverにマウオーバーすれば、パスが表示されます。