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

  • Android SDK セットアップ (API レベル 22) 1GB未満
  • Android SDK セットアップ (API レベル 23) 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ですが、EclipseやAndroid Studioに比べるとまだまだ発展途上な感は否めません。(C#やWindows単体でスマホ開発が出来る、という点は魅力的ですけどね。)

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

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

' } }) e.innerHTML = codeBlock; });