vuforiaの初期化エラー
Unityで、Androidアプリを作っており、
Vuforiaのイメージタグ機能を使用しています。
アプリの容量が100MB以上になったので、obbファイルに分割しているのですが、
vuforiaのARカメラが初回起動時動作しません。
具体的には、真っ黒な画面のままです。
obb分割したシーンに移行できない場合が合ったため、
起動時、最初のシーンでストレージへのアクセス権限についてダイアログを出しています。
一緒に、カメラ権限もダイアログを出しています。
しかし、ダイアログが出る前に、Vuforiaから権限に関するエラーが出ているようです。
上記エラーが発生する端末と、しない端末があります。
GalaxyS5(Android8.0)では発生しませんが、Huawai VKY-L29(Android7.0)だと発生します。
発生している問題・エラーメッセージ
Android Device Monitor でチェックすると、起動時に下記のエラーメッセージが出ます。
The Vuforia Developer Agreement needs to be accepted before using Vuforia in an application.
該当のソースコード
最初のシーンのOnEnable()で、下記のようにパーミッションを確認しています。
private void OnEnable() { while (!CheckPermission("android.permission.CAMERA") || !CheckPermission("android.permission.WRITE_EXTERNAL_STORAGE") || !CheckPermission("android.permission.READ_EXTERNAL_STORAGE")) { } } static bool CheckPermission(string permission) { using (var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) using (var compat = new AndroidJavaClass("android.support.v4.app.ActivityCompat")) { var check = compat.CallStatic<int>("checkSelfPermission", activity, permission); if (check == 0) return true; int REQUEST_CODE = 1; compat.CallStatic("requestPermissions", activity, new string[] { permission }, REQUEST_CODE); //再チェック check = compat.CallStatic<int>("checkSelfPermission", activity, permission); if (check == 0) return true; } return false; }
試したこと
VuforiaのDelayed Initializationをチェックして、
起動時のシーンからARカメラを使うシーンへ移行してから下記を手動で呼んでいます。
VuforiaRuntime.Instance.InitVuforia();
補足情報(FW/ツールのバージョンなど)
Unity 2018.3.12
Vuforia 8.1.7
端末:Huawai VKY-L29(Android7.0)
あなたの回答
tips
プレビュー