"ExecutionEngineException" when using the Check Function Condition Task in iOs

Forums 💬 NodeCanvas ⚙️ Support "ExecutionEngineException" when using the Check Function Condition Task in iOs

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #16655
    eduardo
    Participant

      Hello 🙂

      I believe I have found a bug when using Check Functions on iOs builds. I get the following error when the Check Function Condition task is initialized:

      ExecutionEngineException: Attempting to call method ‘NodeCanvas.Framework.Internal.ReflectedFunction`1[[NodeCanvas.Framework.Status, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null]]::.ctor’ for which no ahead of time (AOT) code was generated.

      This only seems to happen on iOs builds, Android is fine. I am using unity 2018.3.14

      I have attached the full error log in case that helps. Thank you for your help!

      #16660
      eduardo
      Participant

        Looks like the same exception occurs when using the “Implemented Action” Action.

        #16659
        driiade
        Participant

          I have similar Bug with code like this : using NodeCanvas.Framework;
          using ParadoxNotion.Design;
          using System;

          [Category(“Utility”)]
          public class IndicateCurrentState<T> : ActionTask<StateProvider> where T : Enum {

          protected override string info => $”Indicate {state} state”;

          public T state;

          protected override void OnExecute()
          {
          agent.SetCurrentState<T>(state);
          EndAction();
          }

          }

          And it will be cool NodeCanvas Generate AOT for this case

          #16658
          Gavalakis
          Keymaster

            Hello and very sorry for late reply due to summer vacation!

            @eduardo: Please make sure that you are using the Script Control tasks found under the “Script Control/Multiplatform” category instead of the Standalone category. The tasks in the Multiplatform category are especially made to work with AOT platforms (like iOS is), while the ones in the Standalone, are made for JIT platforms (like Android or desktop).
            Also, you will need to please generate the AOTClasses.cs and link.xml files (any time before build) through the Preferred Types Editor for AOT platforms. Here is a link to the relevant documentation: https://nodecanvas.paradoxnotion.com/documentation/?section=working-with-aot-platforms
            Within that Preferred Types List, you will just need to add the type you are working with within NodeCanvas (if the type is not already in the list like most common ones are).

            @driiade: Can you please provide a bit more info? What kind of bug? Is it relevant to the above? 🙂

            Thanks!

            #16657
            driiade
            Participant

              Hello Gavalakis 🙂

              Yes it’s the same sort of error. Just on IOS this task is not defined and IOS can’t find this task on Deserialization. I can fix it by just creating a script with defined Enum. But it would be very cool to have this sort of template working on the AOT generator.

              #16656
              eduardo
              Participant

                Ahh I see, I missed that bit on the documentation. Thanks, Gavalakis!

              Viewing 6 posts - 1 through 6 (of 6 total)
              • You must be logged in to reply to this topic.