カテゴリー別アーカイブ: Android

VisualStudio2015PreviewでXamarin.Androidを作業するために

VisualStudio 2015 のインストールは少々変更が図られています。
本体のインストールの後に、SecondaryInstallerが立ち上がり、追加機能のインストールを行う形になっています。
セカンダリインストーラー

セカンダリインストーラー2

セカンダリインストーラー3

この中で注目したいのは「Microsoft Visual Studio Emulator for Android」です。
このEmulatorはHyper-Vへx86ベースのAndroid4.4が搭載されたもので、WindowsPhone8.1Emulatorと同じように加速度のテストなどもEmulator上で可能になりますし、Hyper-Vベースなので、今までのVirtualBoxベースのエミュでは毎回Hyper-VのON/OFF切り替えをしなければならかったことから解放されます。

VisualStudio 2015 Preview をインストールしたあとAndroidアプリの作成を行うと、Xamarinのダウンロードを促す画面が表示されます。

Xamarin01

さて、すでにXamarinをインストール済みの方も多いと思うのですが、この画面のリンクから表示されるホームページに掲載されているXamarinは「XamarinInstaller-VS2015」という専用のXamarinが用意されています。
すでにインストールして最新のXamarinにしている場合は、一度アンインストールしてから「XamarinInstaller-VS2015」をインストールする必要があります。
また、インストール後にXamarinのアップデートを行えますが、アップデートしてしまうとVS2015対応が削除されてしまうそうなので、アップデートは避けましょう。

さて、早速テストしようと思いブランクを作成してコンパイルを行うと「”MergeApkRecipelists” task was not given a value for the required parameter “RecipeFiles”」が発生してコンパイルが行えません。

エクセルソフトの田淵さんもBlogで同じ現象が起きていることを書かれていたのですが、田淵さんからツイッターでコメント欄に回避方法が乗っていますと教えていただき、試したところ無事ビルドしてNexus7に転送して起動することまでは確認できました。

手順としては、ソリューションへプロジェクトの追加で「Visual C++>Cross Platform」で「Dynamic Shared Library (Android)」を追加します。
追加したプロジェクトを、メインのAndoroidプロジェクトから参照します。

Xamarin02

次に「C:\Program Files (x86)\MSBuild\Xamarin\Android」にある「Xamarin.Android.Common.After.targets」を書き換えて、「Import Project」をコメントアウトしておきます。

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
    <Import Project="$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter\*"
            Condition="Exists('$(MSBuildThisFileDirectory)\Xamarin.Android.Common\ImportAfter')"/>
-->
</Project>

AndroidのBuild設定ですが「Dynamic Shared Library (Android)」が「API Lebel 19」を指定されているので、メインプロジェクトの設定も「API Lebel 19」に設定する必要があります。

これでとりあえずビルドが通り、実行可能にはなります。

さて、自分の一番の目的は「Microsoft Visual Studio Emulator for Android」だったのですが、「Emulator start error: VS Emulator Android Phone」とだけ表示され、起動させることができていません。

まずは入口に立ったというだけですが、もう少し探ろうと思います。

※追記

 増田さんのBlogに書かれていたのですが、Xamarin.Formsを使用する場合は上記の設定をわざわざしなくてもBuild可能とのことです。
 「Microsoft Visual Studio Emulator for Android」を起動可能な方法を記載されていますが、やはり茨の道で、まだまだこれからのようです。
 自分がいろいろ試していたところ、やりすぎて開発環境のVS2013が不調になったため、VS2015Preをアンインストールして、VS2013Up4を修復インストールすることで、無事元の状態に戻せました。

Xamarin.Android開発をVisualStudio2013で行う際のメモ

MS MVP向けにXamarin.AndroidとXamarin.iOSのライセンスがあるということで、申し込みをしたところ、無事ライセンスが発行されました。

このライセンスはBusinessレベルのライセンスになっているので、自身が使い慣れた「VisualStudio2013」と連携させて使用できるようになりました。

無償のライセンスもあるのですが、「VisualStudio」との連携がなく「XamarinStudio」での開発になり、アプリケーションの容量に制限があります。
まずC#で開発を試したいという場合には無償版でも問題ないと思いますが、「VisualStudio」を利用できるメリットは非常に大きいので、ライセンスの購入を検討されてはいかがでしょうか?

Xamarinのインストールに関しては、Xamarin の代理店であるエクセルソフトの田淵さんがBlogに詳しく書かれています。
これから Xamarin を始めたい方向けの凄く丁寧なインストールガイド (Windows/Android 編)

・個人的な追記
・環境変数は「コントロールパネル」>「システム」>「システムの詳細設定」>「環境変数」
・システム環境変数に新規追加で変数に書く際は「%」は記述不要(のはず、「値」には必要)
・「%JAVA_HOME%」はJAVA SDKインストールフォルダ
・SDK Manager で「Google USB driver」は実機デバッグに必須

さて、実機シミュレーターですが、「VirtualBox」ベースのため「Hyper-V」が有効の環境では使用できません。
自分はWindowsPhone8.1開発も行っているため、これが地味に困る状況だったりします。
今後「Hyper-V」に展開される実機シミュレーターが出るともっと便利かなとは思います。

なので、「Nexus 7(2013)」を購入して、実機デバッグを行うことにしました。

Nexus 7は(2012)と(2013)がありますが、知人から(2013)でないとBLE(Bluetooth Low Energy)が使用できないという情報がもたらされたので、今後も考えて(2013)にしました。((2012)でも向け道はあるようですが、面倒なので)
また、Nexusじゃなくてもいいんじゃないかというのもあったのですが、キャリア端末の場合デバッグが動かない可能性をやはり知人からもたらされたので、Googleの公式端末であるNexusを手に入れました。

さすがにXamarin初心者ですので、参考にするために「C#によるiOS、Android、Windowsアプリケーション開発入門」を丁度参加していたMicrosoft Conference 2014会場で先行販売していたので、購入してきました。

Kindle版も出ています。

現在XamarinはXamarin.FormsというView部分の共通作業を行えるように発展しています。
上記の本ではこれが出る前の方法となっているので、少々古い部分はありますが、手探りでやるという状態よりは良いでしょう。

実機デバッグの準備
インストールは上記の方法でしているものとして、まずNexus7の「開発者向けオプション」を有効にします。

・「設定」>「タブレット情報」>「ビルド番号」を7回タップ
タップしていると「デベロッパーになるまであと~ステップです」と表示されてステップが減ります。
・成功すると「設定」に「開発者向けオプション」が表示されます。
・「開発者向けオプション」>「USBデバッグ」をタップして有効にします。
・PCにデータ通信可能なケーブルでUSB接続します。
・「コントロールパネル」>「システム」>「デバイスマネージャー」>「Nexus7」に「?」がついています。
・「Nexus7」を右「クリック」>「プロパティ」>「ドライバー」>「ドライバーの更新」>「コンピュータを参照してドライバーソフトウェアを検索します」>「参照」>「C:\dev\Android-Studio\sdk\extras\google\usb_driver」
・インストールを行うと「Android ADB Interface」がインストールされます
Android ADB Interface

android01

・インストール後、実機側で「USBデバッグを有効にします」と出るのでタップすれば、VisualStudio2013上で認識されます。
android02

android03

これで取りあえず、VisualStudio2013上での開発と実機デバッグが行えるはずです。

AndroidはバージョンごとにAPIレベルが設定されているので、使用するコンパイラレベルと最少バージョンを指定しなければいけません。
プロジェクトのプロパティで「Compile using Android version」と「Minimum Android to target」を変更します。

ProjectProperty

既存のVisualStudio2013ソリューションにXamarinプロジェクトを追加する場合、追加が終わらず応答なしになる時があります。
この場合、VisualStudio2013を強制終了して、ソリューションを起動、既存プロジェクトの追加で、追加はされていないもののプロジェクトファイルは作成されているので、それを参照して追加することで、作業を開始できます。

さて、なんでVisualStudio2013ベースをお勧めしているかといえば、楽だからです。
もちろんXamarinStudioも性能が上がってきていますが、VisualStudioはそれ以上に便利でパワフルです。
また、Windows/WindowsPhone8.1の開発を先に開始していることもあり、既存ソリューションの移植、TFSとの連携からVisualStudio上での開発を行っています。

まずはこんなところから開発事始め的なメモ記事を書いてみました。