The provided link did not help
I pasted the original Viveport for Unity code which runs fine in editor checking the license, but compiled to IL2CPP I also get
NotSupportedException IL2CPP does not support marshaling delegates that point to instance methods to native code>ViveportApiInit (Viveport.StatusCallback callback, SYstem.Strng appId) (at <0000...0>:))ViveportLic.Start () (at <000...000>:0)
The only thing I see that link does is adding
[MonoPInvokeCallback(typeof(CallbackDelegate))]
and that callback is already static.
public class ViveportLic : MonoBehaviour {// ID and Key private delegate void CallbackDelegate(); void Start() { Api.Init(InitStatusHandler, VIVEPORT_ID); } [MonoPInvokeCallback(typeof(CallbackDelegate))] static void InitStatusHandler(int nResult) { Viveport.Core.Logger.Log("Init(): " + nResult); if (nResult != 0) { Viveport.Core.Logger.Log("Init setup error ..."); } UserStats.IsReady(IsReadyHandler); }