WP8 crashes and exceptions with NC2.3.7

NodeCanvas Forums Support WP8 crashes and exceptions with NC2.3.7

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #9512

    Hello,

    I’m running into some problems with NC (v2.3.7) on… Windows Phone 8, the usual whipping boy.

    Problem 1 (and a solution)
    ————————–
    First, the latest version (2.3.7) outright crashes any application due to FullSerializer. You need to change fsMetaType lines 297 to 302 from

    to

    Otherwise, the app will crash when deserializing any scene with NodeCanvas stuff in it.

    Problem 2
    ———
    Second problem, and one I am looking for a solution is the following exception:

    As you can see, it crashes somewhere in GetComponents during the Awake() calls.

    Best
    Alain-Daniel

    #9522
    Gavalakis
    Keymaster

    Hello,

    Thanks for the issue reporting.
    Regarding the first issue, originaly it was like you suggest, but sone people suggested the way it is now for no crashing. Hm.

    Regarding the 2nd issue, can you please try and open up GraphOwner.cs and replace the ‘graphIsLocal’ property at line #48 with this:

    If this still doesn’t work, I will provide another solution.

    Thanks!

    Join us on Discord: https://discord.gg/97q2Rjh

    #9521

    Hi Gavalakis,

    For the 1st issue: I don’t know… could be different version of Unity?

    2nd issue: the code didn’t work out. Still exactly the same crash. Actually, I tested just running a ‘GetComponents<Component>()’ for fun and that crashes as well…

    Alain-Daniel

    #9520
    Gavalakis
    Keymaster

    Hey,

    Regarding 1, yeah it could be due to different Unity versions. Are you on Unity 5 by the way?
    As for 2, here is another solution:

    In GraphOwner.cs:
    1. Replace Awake method with this code:

    2. In GetInstance method line #95 replace:
    instance = Graph.Clone<Graph>(originalGraph);

    with :

    Let me know if that works for you.

    Thanks

    Join us on Discord: https://discord.gg/97q2Rjh

    #9519

    Hello again,

    I hate to be the bearer of bad news, but the fix didn’t work, but I also have more information for you. Let’s do things in order however.

    Issue #1: I’m on Unity 5.1.2f1. Looking at my Player Settings to spot something that may influence that behaviour, I find that the “Api Compatibility Level” is set to “.Net 2.0 Subset”. I don’t really see anything else. This is a brand new project created from scratch to test these issues, so I haven’t messed with any settings really.

    Ok, now Issue #2. I have made the change you suggested. However what you say was at line 95 (instance = Graph.Clone<Graph>(originalGraph)) for me is at line 108. I am wondering if I have the right version of NC now… but I installed from the Asset Store a couple of days ago.

    After the change, I still get an exception about “GetComponent” but from a different location:

    Sometime over the weekend, I had submitted a bug to Unity about this exact problem. Here is the answer they sent back:

    Thank you for reporting the issue.

    It appears that you are trying to call the method from the wrong thread. In order for the code to work you have to call it like this:

    private void Unity_Loaded()
    {

    UnityPlayer.UnityApp.BeginInvoke(() =>
    {
    //your code
    });

    }

    That makes some sense considering the exception call stack, but after a quick look, I can’t see where the original Invoke would be. Also, why does it even work in the editor/other_platforms it that is the case?

    Cheers,
    Alain-Daniel

    #9518
    Gavalakis
    Keymaster

    Hello,

    Thanks. I think I know the issue now regarding GetComponents.
    Considering I’m correct about my speculation, if you comment out GatherDelegates() in FSM.cs at line #42, it should work.
    Can you please confirm?

    Thanks!

    (PS: You certainly have last version if you updated from asset store, the difference in line # was due to the change in ‘graphIsLocal’ property we made here in this post)

    Join us on Discord: https://discord.gg/97q2Rjh

    #9517

    Hello,

    So I tested commenting GatherDeledate() at line 42. The exception are gone, but not everything is entirely kosher still. I’m getting this error on an ActionNode with a DebugLogText action on it (and the ‘Hello World’ was not sent to the console). Obvisouly, this doesn’t happen in the editor.

    There was also a couple of NullReferenceException trapped by Visual Studio in the debug log before it, but I don’t know if they are related since there always are some of those when running a project through VS.

    Cheers,
    Alain-Daniel

    #9516
    Gavalakis
    Keymaster

    Hello Daniel,

    Sorry of the late reply.
    I am still looking into this issue.
    Could you please provide the full stack trace of those error logs?

    Thanks in advance.

    Join us on Discord: https://discord.gg/97q2Rjh

    #9515
    pjohalloran
    Participant

    Yep, that was me on Activator.CreateInstance(ReflectedType);

    Not using the bool flag fixed crash i was seeing.

    (I was seeing that crash on Unity 4.6.1 by the way)

    #9514
    Gavalakis
    Keymaster

    Thanks for letting me know.
    Do you mean that even the original issue is solved by this for you?

    Thanks

    Join us on Discord: https://discord.gg/97q2Rjh

    #9513
    pjohalloran
    Participant

    Yep, i can confirm the patch i sent to you fixed the original crash for me.

    I think we just need a WP8 defines as METRO only covers WSA i believe.

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