AMG Solution

Unity⇒Oculus GOビルド時のエラーとその対策まとめ

こんにちは、飯塚です。
 
2018年夏の親子ものづくり体験では、AMGの技術部門でWeb版の花火をVRに対応させる試みをしましたが、本番直前になってOculus Goへのビルドでやたらハマりました。そんな苦い経験を教訓にエラーメッセージ別の対処法をまとめました。
 
この記事のターゲットはこんな人です。
 

ビルドの設定は一通りしてあるはずなのに、うまくいってない人
ビルド時のエラーメッセージをググっても解決策が見つからない人
細かい理屈は置いといて、対処法を知りたい人

目次

  1. UnityException: Bundle Identifier has not been set up correctly
  2. No Android devices connected
  3. AndroidManifest-main.xml Error
  4. UnityとAndroid SDKのバージョンによるエラー
  5. まとめ

Bundle Identifier has not been set up correctly

エラーログ

 
エラーメッセージの通りパッケージ名を直すだけです。パッケージ名は一意でないといけないようなので、名前をつけてあげます。
 
 
Build Settingsをクリックをします。
 

 
次に、Player Settings…をクリックします。
 

 
次に、Inspector > Other Settings > Identification > Package Name を変更します。
 

No Android devices connected

エラーログ

 
ビルド先のアンドロイド端末(Oculus Go)が見つからないと言っています。
 
1. Oculus GoとPCがUSBでつながっていることを確認する。
つながっていれば、Oculus Goライトがオレンジ色から、緑色のライトに変わります。
 
2. Oculus GoがUSBデバッグを許可していることを確認する。
許可していなければ、Oculus Goを装着したときに、以下のようなポップアップが表示されるので、OKをクリックします。
 

 
3. Oculus Goが開発者モードになっていることを確認する。
 
4. コマンドプロンプトを立ち上げて、下記のコマンドを流す。
接続中のアンドロイド端末があるか確認。

アンドロイド端末を停止。

アンドロイド端末を起動。

 
※adbコマンドの導入方法は下記リンクで紹介されています。
Qiita ADBコマンド導入の方法
導入には、多少かさばるもののAndroid Studioを入れるのが手っ取り早いと個人的に思います。

AndroidManifest-main.xml Error

エラーログ

Suggestionの通りにAndroidManifest.xmlを修正します。
 
私の環境だと以下のパスにありました。
Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Apk\AndroidManifest.xml
 
修正前

 
修正後

UnityとAndroid SDKのバージョンによるエラー

個人的にはここが一番ハマったところでした。どうやら、unityのバージョンによってはOculus Goへのビルドに失敗することがあるようです。
 
調べてわかったこと
 

unity5.6f系はビルドに失敗することがある
最新版のunity2018系もβ版の場合はビルドに失敗する可能性がある。
UnityとAndroid SDKのバージョンの組み合わせによってはビルドに失敗することがある。

 
結局成功したのは、以下のパターンです。

Unity 2018.1.0f.2
Android SDK Android 8.0 (Oreo) (API level 26)
Android Minimum API Level Android 4.1 ‘Jelly Bean’ (API level 16)

 
Android SDK (Android Studio)

 
Android Minimum API Level (unity)

 
Android SDKのバージョンとAndroid Minimum API Levelのバージョンが必ずしも一致しないことにも注意してください。私はこれに気づくのに、結構時間がかかりました。
 
試しにAndroid SDKのバージョンを、Android 4.1 (Jelly Bean) API Level 16に合わせると、以下のようなエラーが出ます。
 

 
各設定をチェックした後、それでもビルドに失敗する場合は、一度unityのバージョンを疑ってみてください。

まとめ

今から振り返ると、モックを作った時点でOculus Goで確認するところまで進めていれば、もっと余裕をもってビルドエラーに対応できたなと反省しています。
 
UnityのおかげでVR開発のハードルはかなり下がっていますが、もしこれから開発を始める方がいたら、VRにアプリをビルドするまでの環境をはじめに整えておくと、後々ラクになると思います。

IIZUKA'S BLOG

飯塚暉の記事

飯塚暉の記事の最新情報をお届けいたします。

SAME CATEGORY BLOG

この記事と同様のカテゴリー記事

採用エントリー
はじめました。
LOADING