Unityで開発したアプリをUSBを用いてAndroid端末に転送する場合、何カ所かキーになる設定があり、誤ると以降に示すエラーダイアログあるいはConsoleにエラーメッセージを出力します。なお、使用している各アプリ/ドライバのバージョンを次に示します。

  • Unity ver4.5
  • SAMSUNG USB Driver for Mobile Phones V1.5.43
  • AndroidSDK(ADT 23) installer_r23.0.2-windows
Unity ver5を使用する場合は、「32ビットWindows7上でUnity 5によるAndroid用のビルド」を参考にしてください。

USBドライバが見つからない

Unityでは、正常にUSBドライバがインストールされていないと次のような表示がされます。

エラーダイアログのエラーメッセージ
エラーダイアログのエラーメッセージNo Android device found!
*Make sure USB debugging has been enabled
Consoleへのエラーメッセージ
ConsoleへのエラーメッセージADB – No device found – output:
List of devices attached

Android端末ごとにドライバーは異なるため、新しいデバイスをPCと接続する場合は、ドライバのインストールが必要になります。 端末が認識されない場合は、デバイスマネージャーから、USB接続が有効になっているか確認してみます。 「!マーク」が付いている場合は、正常に認識されていません。
正常にドライバがインストールされていると次のように表示されます。
デバイスマネージャの表示
デバイスマネージャの表示
USBドライバのプロパティ表示
USBドライバのプロパティ表示

また、Android SDKに付属して配布されている開発ツールADB(Android Debug Bridge)を使用します。ADBは、パソコンをADBサーバー、Android端末をADBクライアントとして動作させる構造になっていて、端末へのプログラムのインストール/アンインストール、ファイルの転送/取得、デバッグ情報の通信、Android端末のシェル起動など、デバッグに必要な様々な機能を持っています。ドライバーが正常に動作していれば、次のように端末リストが表示されるでしょう。

C:\android-sdk\platform-tools>adb devices
List of devices attached
100044aa3721    device

zipalign.exeが見つからない

zipalign.exeは、.apk 内のイメージや生のファイルといった未圧縮データを 4 バイトバウンダリに整列させるようにします。その結果、アプリケーション実行時の RAM の総使用量を減らすことができます。これをBuild時に呼び出していて、ダイアログは出力されずに、次のエラーメッセージがConsoleに表示される。

Consoleへのエラーメッセージ

Error building Player: Win32Exception: ApplicationName='C:/Program iles/Android/android-dk\tools\zipalign.exe', CommandLine='4 "C:\Users\Documents\New Unity roject\Temp/StagingArea Package_unaligned.apk" "C:\Users\Documents\New Unity roject\Temp/StagingArea/Package.apk"',CurrentDirectory='Temp/StagingArea'

原因は、最新のSDKフォルダ内のbuild-tools\android-4.4Wにzipalign.exe が移動したためで、対策として、移動したフォルダから/Android/android-sdk\tools\に持ってくるのが一番早そうです。

Minimum API Levelの誤り

次に示すエラーダイアログとエラーメッセージは、アンドロイド端末のバージョンとUnityに指定されている最低バージョンの条件があわない場合出力されます。

エラーダイアログのエラーメッセージ
ダイアログエラーメッセージ
Unable to install APK

Consoleへのエラーメッセージ
Consoleエラーメッセ表示

Installation failed with the following output:
pkg: /data/local/tmp/Package.apk
Failure [INSTALL_FAILED_OLDER_SDK]
1252 KB/s (8403965 bytes in 6.550s)

原因は、「BuildSettings >Player Settings… > Other Settings > Minimum API Level」での設定ミスでした。次のように設定し直します。

Androidの設定ミス

  • 誤 実機 = Android 2.3 Minimum API Level = Android 3.0
  • 正 実機 = Android 2.3 Minimum API Level = Android 2.3.1