Adobe-Runtime-Support icon indicating copy to clipboard operation
Adobe-Runtime-Support copied to clipboard

AIR 50.2.4.4 is unstable -Android Vitals is rising

Open idanasher opened this issue 10 months ago • 13 comments

I have published my android app with AIR 50.2..4.4 since then, my android vital data is rising. more crashes & more ANRs:

image

Those are the main issues I get (so far, from Google Console) on this version: image

Compiling using animate 24 on windows 10 distriqt ANEs- all latest versions

Is the new air version 50.2.4.5 suppose to solve any of them and be more stable ??

idanasher avatar Apr 10 '24 07:04 idanasher

Hi

None of those look familiar, so if you have any call stacks or details it would be good to have those. What was the previous version of the AIR SDK that you published with, so that we can make a comparison?

thanks

ajwfrost avatar Apr 10 '24 10:04 ajwfrost

We also see crashes related to android.widget.FrameLayout.layoutChildren and split_config.arm64_v8a.apk!libCore.so at the top of our lists (with layoutChildren having 10-20x the crashes compared to others in our list), but we've also seen that same behavior in previous AIR SDKs. Can't quite tell if it's more prevalent in 50.x in our case, but I'm seeing the same layoutChildren crashes in all of our games packaged with 33.1.1.935 too (and split_config crashes in ones packaged as AAB instead of multi-APK).

FliplineStudios avatar Apr 10 '24 14:04 FliplineStudios

@ajwfrost previous version was with air sdk 33. I still don't have any call stack

idanasher avatar Apr 10 '24 14:04 idanasher

I would have hoped that a Java null exception in "android.widget.FrameLayout.layoutChildren" is something that would be easy to identify from a call stack... is there any way to get these from the Play console, analytics or similar?

Just checking too - I believe you're using the runtime in the background? @FliplineStudios do you use that feature too?

thanks

ajwfrost avatar Apr 10 '24 19:04 ajwfrost

@ajwfrost We're not using the runtime in the background.

Here are a few of our stack traces from Play Console for that crash for reference, they're similar but slightly different. I've included two from an app using 50.2.4.4 and three from a different app using 33.1.1.935: layoutChildren_crashes.txt

FliplineStudios avatar Apr 10 '24 20:04 FliplineStudios

image

I also have some crash report on play vitals, none of these show any stacktrace on play console unfortunately

bobaoapae avatar Apr 11 '24 05:04 bobaoapae

I can confirm this(

After move from AIR33.1.1.935 to AIR50.2.4.4 crash rate has increased from ~0% to ~3-4% image

[split_config.arm64_v8a.apk!libCore.so].txt dalvik.system.BaseDexClassLoader..findClass.txt

Mintonist avatar Apr 11 '24 19:04 Mintonist

Same here: Exception java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.View.getVisibility()' on a null object reference at android.widget.FrameLayout.layoutChildren (FrameLayout.java:284) at android.widget.FrameLayout.onLayout (FrameLayout.java:270) at android.view.View.layout (View.java:24969) at android.view.ViewGroup.layout (ViewGroup.java:6784) at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332) at android.widget.FrameLayout.onLayout (FrameLayout.java:270) at android.view.View.layout (View.java:24969) at android.view.ViewGroup.layout (ViewGroup.java:6784) at android.widget.LinearLayout.setChildFrame (LinearLayout.java:1829) at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1673) at android.widget.LinearLayout.onLayout (LinearLayout.java:1582) at android.view.View.layout (View.java:24969) at android.view.ViewGroup.layout (ViewGroup.java:6784) at android.widget.FrameLayout.layoutChildren (FrameLayout.java:332) at android.widget.FrameLayout.onLayout (FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout (DecorView.java:1431) at android.view.View.layout (View.java:24969) at android.view.ViewGroup.layout (ViewGroup.java:6784) at android.view.ViewRootImpl.performLayout (ViewRootImpl.java:4917) at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:4240) at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:3116) at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:10885) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1301) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1309) at android.view.Choreographer.doCallbacks (Choreographer.java:923) at android.view.Choreographer.doFrame (Choreographer.java:852) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1283) at android.os.Handler.handleCallback (Handler.java:942) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loopOnce (Looper.java:226) at android.os.Looper.loop (Looper.java:313) at android.app.ActivityThread.main (ActivityThread.java:8762) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:604) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

marcanw avatar Apr 21 '24 19:04 marcanw

There's a few different reports here ...

  1. Native crash -> split_config / libCore issue -> we'll check that call stack and see if we can work out the issue.

  2. findClass issues -> the only one that shows a class definition that it's failing to find is `com.google.firebase.iid.FirebaseInstanceIdReceiver' .. wondering if this is reproducible, in which case it implies a packaging problem. Otherwise, not sure how that may be happening sporadically..

  3. The recent call stack, plus the "layoutChildren" crashes, are showing an issue when Android handles the view layouts/updates. The challenge here is that nothing in that core stack has any of our code in it, it's purely an internal Android function that's layout out children and, it seems, finds a null one but hasn't got null-checking in the code. To me this indicates an Android bug, but maybe it's being exposed by something we'd changed..

ajwfrost avatar Apr 22 '24 08:04 ajwfrost

@Mintonist Regarding 2, that class is part of Firebase and used by push notifications in particular. You are potentially missing a dependency or using incompatible versions. Log an issue with distriqt and we'll help you through it.

marchbold avatar Apr 23 '24 01:04 marchbold

@marchbold I have read docs once more. The only thing - I don't use in-app messaging, so don't include com.google.firebase.messaging.ane, com.distriqt.square.okhttp.ane, com.distriqt.square.okhttp3.ane and image

Some months ago I ask about it. Seems I may not include it. Is it correct?

Mintonist avatar Apr 23 '24 19:04 Mintonist

Yes that should be fine. Could you make sure you are using the latest extensions and post an issue in the push notifications repo with the full crash log?

marchbold avatar Apr 24 '24 00:04 marchbold

v14.1.0. I have no full adb log with crash( Only logs from google dev console

Mintonist avatar Apr 24 '24 09:04 Mintonist