Unityで作成したアプリをPC上で確認した後は、ターゲット端末に落として実際のテストをします。
これはAndroid向けにBuildして実機でテストする手順です。MacとWindowsの両方のケースで見ていきます。
Android 8.1
Androidでの開発を始める
Unityマニュアルには説明ページがあります。これに沿って進めていきます。
Unity| Androidでの開発を始める
以下のような手順で設定します。
1.Android Studio, JDKのインストール
2.Android端末のUSBドライバーを入れる
3.Android SDKのパスを設定
4.BundleIDを設定
5.Build And Run
6.Errors
Android Studio, JDKのインストール
必要なものはAndroid SDKだけですが、開発ツールであるAndroid Studioをインストールしてその中にあるSDKを使うこともできます。Android Studioを入れるとどうしてもHDの容量を食いますが、アプリ内のフォルダを見たりできるなどデバッグツールを使えるメリットもあります。
MacとWindowsではインストールが多少異なります。また、Java開発環境のJDKも合わせてインストールが必要です。
WindowsにAndroid Studioをインストール
https://akira-watson.com/android/adt-windows.html
MacにAndroid Studioをインストール
https://akira-watson.com/android/adt-mac.html
Android端末のUSBドライバーを入れる
Android Studioの環境ができたところで、Android端末とPCをUSBケーブルで接続するためのドライバーを入れます。ドライバーは基本的には端末メーカーから提供されるものを使うことになりますが基本的なところは同じです。また同時に端末の開発者向けオプションを有効にします。
こちらのGoogleのNexus7での例を手本にドライバーを設定します。尚、Macの場合はこの作業は必要ありません。
https://akira-watson.com/android/nexus7-usb-driver.html
Android SDKのパスを設定
これ以降はUnityでの設定となります。先にAndroid Studioをインストールしていると自動的に設定される場合もありますが、確認しておくと後々助かります。
最初にAndroid SDKのパスを設定します。
Mac: メニューの「Edit」「Preferences…」を選択
Windows:「Edit」「Preferences…」
External ToolsのカテゴリーにSDKとJDKの欄があります。ここにパスがすでに入っていればそのままですが、無い場合は場合は自分で設定しないといけません。
Android Studioをインストールしていれば、Android StudioからからSDK Locationが分かります。
SDK:
Windows:
「File」「Settings…」「Appearance & Behavior」「System Settings」「Android SDK」
C:\Users\(your name)\AppData\Local\Android\sdk
Mac:
「Menu」「Preferences」「Appearance & Behavior」「System Settings」「Android SDK」
/Users/(your name)/Library/Android/sdk
JDK:
Windows:
例えばOracleのJDKを使ってJAVA_HOMEを設定している場合など
(注意) JDK8がサポートバージョンです。
C:\Program Files\Java\jdk1.8.XXX_XXX\
Android Studioは2.3あたりからOpenJDKを使うようになっていて、すでにAndroid StudioをインストールしてもそのPathが設定されていないかもしれません。
C:\Program Files\Android\Android Stuido\jre
これは環境をどうしているかなので自分で確認してください。例外的にPlugin等の関係でJAVA_HOMEを設定してOracleJDKを使う場合もあります。
Mac:
JDKは分かりにくいのですが、ターミナルを使って調べると概ね
/Library/Java/JavaVirtualMachines/jdk1.8.XXX_XXX/Contents/Home
のような場所にリンクがあります。(シンボリックリンク)
ただし、Android Studioでは以下に設定されています。今の所どちらでもビルドはできるようですが、そのうち変わるのでしょうね。
/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
BundleIDを設定
Unityから「File」「Build Settings」を選択
SeanをAdd
Androidにswitch
- Add Open Scenesでシーンを追加(意外と忘れがち!)
- PlatformのAndroidを選択
- Switch Platformのボタンをクリックする
- Player Settingsを選ぶとInspectorが表れます
- Build System でGradleを設定する。あるいはGradleプロジェクトをexportする。詳しくは Android の Gradle
Company Name と Product Nameを決めます
それに応じたBundleIDを設定します
例:
Company Name:hoge
Product Name:TestApp
とすると
Bundle Identifierは
com.hoge.TestApp
のようにします。
このInspectorの設定は、公開する時にはアイコンやその他の設定が必要です。とりあえず実機テストだけなのでここまでです。
Build And Run
Buildボタンをクリックします。
しばらくしてSuccessとなるのを確認します。
SDK, JDK, BundleIDの設定が正しくないとエラーになります。
「Build And Run」ボタンをクリックして実機で実行されます。
Android Sduio のemulatorで実行させる
emulatorでテストするにはapkファイを作成していますので、それをadbコマンドを使ってインストールします。
emulatorを単体で起動させます。他の実機などは切っておきます。
deviceを確認してからインストールです
1 2 3 4 5 6 7 8 |
hoge$ adb devices List of devices attached emulator-5554 device hoge$ adb install TestToAndroid.apk 10264 KB/s (19636852 bytes in 1.868s) pkg: /data/local/tmp/TestToAndroid.apk Success |
この方法はemulatorだけではなく、実機にも使えます
Errors
AAPT2 Error:
AAPT2とは、Android Studioと Gradle Pluginがアプリをコンパイルしてパッケージ化するために、リソースを解析し、索引付けし、Androidプラットフォーム用に最適化されたバイナリ形式にコンパイルするものです。
Ref: AAPT2 | Android Developers
対策1)
最近デフォルトでenableになったので、使わないということもできるようです。
UnityからAndroidにExportして、Android Studioからimport、gradle.propatiesに以下を追加する
1 |
android.enableAapt2=false |
これでも解決しない場合は、Android Studioに展開できているので、Androidでの他のエラー関連記事を探して対応もできます。バージョンによって様々あるようです。
対策2)
Unityのビルドの設定でBuild SystemはGradleになっていた場合は、Internalに変更する。
対策3)
これはAndroid Studioで良く起きますが、前のバージョンは大丈夫だったけど新しいバージョンでエラーになる。例えばAndroidの開発環境にASCII以外のpathが入る。例えば日本語のフォルダあって読出しエラーになるとか。これは基本なのですが(エンジニアとして)ついついやってしまい、前まではたまたま大丈夫ということもあります。
Make sure the android sdk path iscorrect:
Unable to list target platforms.Please make sure the android sdk path is correct….
Windows環境のケースです。Android Studio 2.3以降SDKのtools構成が大幅に変更されたためビルドエラーとなるようです。
これはすでに修正されたようです。(Unity 2018.1.6f.1 :Mac/Windoowsで確認済)
ただ念のため残しておきます
対策:
- ExportしてAndroid Studioで調整してビルドする
- Android Studioに慣れていればなんとかできますが、ちょっと面倒かも
- 古いAPI25のtoolsを個別にダウンロードして、Android SDK のtoolsフォルダと置き換える。あるいは別に作成する
古いバージョンのsdkが以下にあります。
dl-ssl.google.com/android/repository/tools_r25.2.5-windows.zip
解凍するとそれぞれ以下のファイルがあります。
tools_r25.2.3-windows.zip
SDKのパスからtoolsを探しフォルダを置き換えるか、あるいは別にリネームする等
これでビルドが通るようになります。
ただ、これはいずれ問題になるかもしれません。近々Android 8.0以降をサポートしないとリリースできなくなるようですので
2018 年 8 月: 新しいアプリで、ターゲット API レベル 26(Android 8.0)以降が必須になります。
Ref: 今後の Google Play でのアプリのセキュリティおよびパフォーマンスの改善について
その他:
Buildでエラーになる原因なんて山ほどありるし、大きいバグはとりあえず修正されるのですが、ある意味いつもあり得る問題に起因するものとしてバージョンです。
Androidは最近は早いうちから開発者に新しいplatform,あるいはSDKのPreViewを提供してバグ修正に貢献してもらおうとしています。
ただ、それがUnityなどサードパーティには困ることがあり、ついうっかり最新版ということでインストールしてしまうとエラーになることが多々あります。
- アプリをビルドしてandroid実機上でテストする
- アプリを公開する為の設定
- Developer Consoleに登録してGoogle Playで公開