"We offer new support options and therefor the forums are now in read-only mode! Please check out our Support Center for more information." - Vuforia Engine Team

Vuforia not working on MagicLeap2

Platform

Versions; • Unity 2022.2.0b8 • Magic Leap SDK 0.53.3 Magic Leap XR Plugin 7.0.0-exp.3 • Vuforia Engine AR 10.10.2 • HMD OS; Build: B3E.220721.07-R.027_user (Internal device) - SDK Version 29

From our test the MagicLeap 2 Integration is not doing anything. It works fine in the editor through a webcam, and fine on HoloLens, but can't get any image recognition to work on the ML2 HMD. What we've tried; • The log doesn't give any errors or warnings - just that no pose was found;

Target status: vuforia_image_test-2 NO_POSE -- NOT_OBSERVED DefaultObserverEventHandler:OnObserverStatusChanged(ObserverBehaviour, TargetStatus) DefaultObserverEventHandler:Start()

• All permissions are given (including marker tracking and camera).

Although, even though permissions are given in the manifest and requested using MLPermissions.RequestPermission(), and then validated using MLPermissions.CheckPermission(), we can't get permissions for; Pupil Size World_Reconstruction Write_External_Storage Although those permissions should not be necessary for vuforia • We've tried adding an intermediate scene that launches into the vuforia scene - no changes • We've tried using delayed initialization

With manual initialization we're getting this error;

Error: The file '/data/app/com.Laerdal.VuforiaTest-dAaNa5tNMzB1-nQkQAWPGA==/base.apk/assets/bin/Data/level1' is corrupted! Remove it and launch unity again!

when using this script to start up vuforia;


using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;
using Vuforia;

public class CustomVuforiaStarter : MonoBehaviour
{
    private void OnEnable()
    {
        Debug.Log("OnEnable!");
        VuforiaApplication.Instance.OnVuforiaInitialized += OnVuforiaInitialized;
        VuforiaApplication.Instance.OnVuforiaStarted += OnVuforiaStarted;
        VuforiaApplication.Instance.OnVuforiaPaused += OnVuforiaPaused;
        VuforiaApplication.Instance.OnVuforiaStopped += OnVuforiaStopped;
        VuforiaApplication.Instance.OnVuforiaDeinitialized += OnVuforiaDeinitialized;
    }
    private void OnDisable()
    {
        VuforiaApplication.Instance.OnVuforiaInitialized -= OnVuforiaInitialized;
        VuforiaApplication.Instance.OnVuforiaStarted -= OnVuforiaStarted;
        VuforiaApplication.Instance.OnVuforiaPaused -= OnVuforiaPaused;
        VuforiaApplication.Instance.OnVuforiaStopped -= OnVuforiaStopped;
        VuforiaApplication.Instance.OnVuforiaDeinitialized -= OnVuforiaDeinitialized;
    }
    private void OnVuforiaDeinitialized()
    {
        Debug.Log("[Vuforia] Vuforia Deinitialized!", this);
    }

    private void OnVuforiaPaused(bool obj)
    {
        Debug.Log("[Vuforia] Vuforia Paused!", this);
    }

    private void OnVuforiaStopped()
    {
        Debug.Log("[Vuforia] Vuforia Stopped!", this);
    }

    private void OnVuforiaStarted()
    {
        Debug.Log("[Vuforia] Vuforia Started!", this);
    }

    private void OnVuforiaInitialized(VuforiaInitError obj)
    {
        if(obj != VuforiaInitError.NONE)
        {
            Debug.LogError("Error initialing! \n+" +
                           "Error; \n" +
                           obj);
            return;
        }
        Debug.Log("[Vuforia] Initialized!", this);
    }

    private async void Start()
    {
        Debug.Log("Start!");
        await Task.Delay(1000);
        VuforiaBehaviour.Instance.enabled = true;
        VuforiaApplication.Instance.Initialize();
    }
 
 
}

Deleting this script from the scene allows the scene to load fine.

Hey there,

 

I will continue my responses via the Magic Leap forums: https://forum.magicleap.cloud/t/vuforia-not-working/983

 

Kind regards,

Patrick Scheper

Vuforia Engine Product Manager