App執行出現 << Call to‘gnu.expr.ModuleMethod has too few arguments (1;must be 2) >>

Application program execution appears <<call "gnu.expr.ModuleMethod too few parameters (1; must be 2)>>
My own phone can perform normally, but some people report that the above situation occurs, such as screenshots.
I don't know how to overcome it, thank you very much for your suggestions, thank you

angel2_en.aia (4.0 MB)

When does the error occur, what button is pressed or what action is taken by the user.
Show the relevant blocks for when this happens.

This is a BIG app.

I don't see any Blocks Editor errors, so this is probably a run time problem with timing or memory capacity.

I ran the app in the Companion, and got the error when the app was just sitting there.

The error repeated a while later.

So I suspect it happens in one of your Clock Timer routines:

Maybe you can compare the interval between errors and each of the different Clock Timer intervals, to narrow down your search.

You have many components, and I saw no sign of any reuse of them.

Here is a sample app demonstrating the benefits of generic component blocks:

P.S. Here are some things to check that might lead to memory overflows at run time:

  • procedures that call procedures that call other procedures that call the original procedure
  • Deeply nested logic or long if/then/elseif chains

Also, your multiple Clocks can be consolidated into one faster Clock that checks different global deadline variables holding the SystemTime when their associated logics should fire.

1 Like

You used a Procedure without an argument.

Your Project has

  • about 93 Procedures.

  • nine Clocks with Intervals of between 50 and 900000 ms.

  • over 300 images it switches among.

  • almost 9,700 Blocks.

A guess : hardware on some devices can not keep up with all the activity and a Procedure is called before it's input is available.

A second guess is over time your Clocks start having collisions (one or more attempting to fire more or less simultaneously. A way to attempt to avoid them is to have them fire a random intervals (rather than 50, 60, 120, 200 etc. use 51, 60, 121, 200, 219 etc. ) Doing so might mitigate conditions if collisions is the issue.

Wow, a lot of work. I could not crash the game using Android 8.1 (but I really don't know how to play it :slight_smile: ).
This won't load on the regular server for me.

Answer Tim's questions and you might get more specific advice.

1 Like

Screenshot from the player's feedback, The problem occurred when viewing the hero information:

Thank you very much!

Thank you very much for your suggestions, I will try to merge clocks with certain attributes, thank you!

Sorry...For Knowledge manager, playing games is really time-consuming, and time should be spent on more meaningful purposes.
Thank you for providing the timer not to be set to multiples to avoid collisions, I will try it, thank you very much!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.