otomecha's Forum Posts

  • In my case, fredriksthlm's fix suggestion unfortunately didn't help. I deduced that the problem started occuring in r303 when Construct changed the way that the splash screen works.

    What partially fixed the issue for me was building the game as Android Studio project then open it in Android Studio, go to "Edit - Find - Find in files" and find this line of code

    cordovaInterface.pluginManager.postMessage("setupSplashScreen", splashScreen);

    and delete it.

    This means there might be a few seconds of black or white screen instead of the splash screen which is not ideal, but at least the ANR rate for my game went from 4% to 0.28%

    Here's what Ashley said on the matter of trying to fix the issue by changing the implementation of the splash screen on Construct's part:

    > ... I also don't want to have to reimplement a splash screen, which will be difficult to get exactly right, just to work around a bug in Google's code. Google should fix the root cause issue. I also have no idea how it could take several seconds to even display the built-in progress bar, that seems weird.

    >

    > In short I don't think there's any action worth taking on Construct's side ...

    The issue first occured after Construct updated the Cordova version it uses and therefore updated the splash screen implementation which appears to cause the high ANR rate. But I didn't find any information that would suggest that this exact issue affects anyone else using Cordova outside of Construct 3

    Thank you for your input! Yeah actually I have a live version with this line commented rn and for now the "android.os.MessageQueue.nativePollOnce" dissappeared...

    I have another issue with loading ads causing lag that I also need to tackle.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • If you build yourself (with Android Studio, instead of some build service) you can change a few things for Admob which can get the ANRs down. (Load it on another thread). Also you can tweak the splashscreen settings.

    Also worth for you to test is to build a new build today, which will use the updated Android cordova version. It has updated versions of various libraries, the splashascreen for example.

    I don't know if it makes any differences for you though.

    Thank you very much for your comment! Is there a post where I can find the possible tweaks for Admob? :O

    Regarding the update I wasn't sure if they actually tackled the issue :/ I'm scared so far since I'm in a critical situation rn and I'm basically hotfixing. Lemme know if you try it!!

  • Hi.

    I share your pain!!!

    The r302 version pleased me and gave me very few ANR errors.

    After upgrading to r308 and above, my ANR error rate has increased tremendously.

    I dropped a lot in the rankings and my earnings decreased a lot.

    https://github.com/apache/cordova-android/issues/1510

    https://github.com/Scirra/Construct-bugs/issues/6166

    We never found a solution to the problem and it's a pain.

    Thank you for sharing! Yeah my revenue went down by more than 50% and keep falling... I can't believe any work around was proposed by any of the parts. This basically makes android games useless since you won't be able to rank and get any download.

    I tried to revert to 302 but I couldn't open my project there, so I did the "commenting" thing on android studio -_-

    I also purchased Chadori's plugin to get the admob thing from there, I have some errors clearly referring to admob, but not sure if it's on construct side (maybe the sdk they are using) or on google side, which after we saw it's totally plausible.

  • Hello guys!

    For those with android live games on PS...

    I had a game on the store that was updated sept last year, last month I finally pushed an update, but I noticed the ANRs went up. They are since then above the bad behaviour treshold :(

    Unfortunately this dragged my ranking down dramatically after a month and I'm desperatedly looking for a solution. I haven't added any external plugin.

    As you see the top Native method - android.os.MessageQueue.nativePollOnce are impacting a lot of users.

    I've seen other topics open talking about the "Splash Screen" topic. But I'm not sure what was the solution they found if any :(

    Thank you for your time!

  • You do not have permission to view this post

  • Hello!

    I have a small doubt reagarding googleplay usage.

    I have a set this actions for googleplay.

    But I don't have achievements, or anything like that. At somepoint I added it because I thought it was needed for the mobileIAP to sync. But I'm not sure this is actually true.

  • There will be updates.

    Here are the discussions.

    https://www.construct.net/en/forum/construct-3/general-discussion-7/discontinuation-support-177127

    https://www.construct.net/en/forum/construct-3/general-discussion-7/outdated-android-billing-177148

    https://www.construct.net/en/forum/construct-3/general-discussion-7/play-billing-library-version-177219

    Thank you for the heads up!

  • Hey!

    I updated my game and I got this warning from GooglePlay... Is it gonna be updated? :o

    Thank you

  • Hello!

    Testing my game I've noticed from time to time it takes a lot of time for it to load (in android) I don't know if anybody else had a similar issue. I tested it in the same phone, same background apps, etc. So 1 out of 5 times it got stuck in a very long loading time.

    I've recorded a video:

    Subscribe to Construct videos now

    I've noticed some people complaining about the game 'never loading' in some reviews and I have some ANR's that I suspect comes from here. Any insight of what it could be?

    Things I've tried:

    +Disabling preload sounds

    +Disabling the simple minifying

    +All the loader styles (which are mostly useless, since they dissapear in like 0.5 seconds)

    +Adding a custom loader

    It may be that I have too many gfx, but then this should happen always, but it happens randomly under the same conditions (same battery, no apps in the bg...)

  • Instead of Set JSON.Current key to 1 try this:

    Set "." to 1

    This worked! Thank you!

  • Hello!

    I am trying to loop through all the keys inside a JSON but It's not working :/ So I'm probably missing something...

    My Json looks like this:

    "Items": { "UnlockHouse": 1, "Spring":{ "29": "0", "30": "0", "31": "0", "32": "0", "33": "1", "34": "0" }, (... this continues)

    I want to achieve this:

    "Items": { "UnlockHouse": 1, "Spring":{ "29": "1", "30": "1", "31": "1", "32": "1", "33": "1", "34": "1" }, (... this continues)

    And I was trying something like this:

    This basically does nothing :/

    Thank you for your help!

  • "Gacha" is an array. You need to loop through it in reverse order and remove values one by one.

    > + System: On start of layout
    -> JSON: Set path to "Gacha"
    ----+ System: For "n" from JSON.ArraySize(".")-1 to 0
    --------+ System: JSON.Get("." & LoopIndex) is between 29 and 34 
    ---------> JSON: Remove 1 values at "." starting LoopIndex
    
    

    It works perfectly thanks!

  • Hello!

    Recently, I have migrated my entire project to a JSON data structure and I am having problems figuring out how to remove values from it without knowing the index.

    The array looks like this (when full), but is also dynamic (it can be less of them)

    "Gacha": [29,30,31,32,33,34,35,36,37,38,39,40],

    Could be like this at some point, or even empty.

    "Gacha": [29,30,31,32,37,38],

    What I need is to check if values from 29 to 34 exist and if they do, delete them.

    Same for range from 36 to 40.

    The parameters for JSON to remove point to index, so I'm not sure how to get the index of the values...

    Thank you for your help!

    Tagged:

  • Where do you have that "is empty" check? It should be performed AFTER the array is loaded from AJAX or Local Storage.

    I'm guessing the check is done before the data is loaded from LS.

    You need to change how you load the data. I assume you want to try loading from LS first, and if LS data doesn't exist, then load the default data from the project file.

    Empty check is on start layout.

    For the data that you commented I had no issue loading as it is.

    (update)

    I took it outside as a separate condition and it works! (I wanted it to check this just when I load the layout, since I hide it in a diff way if it becomes empty while you are in the screen)

    Thank you!

  • Hello!

    I'm trying to check if my array is empty, but it's not working and I'm not sure why.

    So I load my array here. This works.

    Then I do this to check, I would like some buttons to get destroyed when it's actually empty.

    Here's an image where you can see the array is empty on the width, but the buttons are still there.

    I've also tried with this, but the result is the same :(

    Anybody know what am I doing wrong? Thank you!

    Tagged: