Game published with AIR SDK 33.1.1.98 crashes immediately on Samsung Galaxy S6

Before I paused my game development I used Air 33.0.2.315 to publish my games. It worked really well, and the crash percentage in Android Vitals reduced significantly.

Now I resumes my gamedev activities, and really happy to see the Air is being updated. I compiled my games with AIR SDK 33.1.1.98 and got a very strange behavior.

The game built with AIR SDK 33.1.1.98 crashes right on the startup, before anything appears on the screen. I get just the black screen - and then the information about the crash. This happened both with x32 and x64 bit versions.

The same behavior takes place for the very simplified version of the game, without any 3rd party SDKs. Among external files the game just uses Starling atlas file (png+xml).

When I tried making a basic as3 project and compile it with AIR 33.1.1.98, it installed and run on the device well.

More strange thing: occasionally, line, 1 in 10 tries, after installing a game on the phone, it run well. But after that when I uninstalled the game and installed again, it crashed again.

On Samsung Galaxy A30s this problem didn’t occur.

33.0.2.315 to publish my games. It worked really well, and the crash percentage in Android Vitals reduced significantly.
So, I used AIR 33.0.2.315 to publish updates to the store.

Where can I find the historical version of AIR SDK between 33.0.2.315 and 33.1.1.98 to define, at which point this error took place?

Could you post a mockup of your main entry point, eg your main class ?

you know the basic stuff, if you listen for the added to stage events, activate events, etc.

I know Harman made a lot of changes about the splash screen,
I can imagine an app startup creating some conflicts if some event listening is not done
nothing to prove that, just a guess so far


you can see the details of what was updated for each versions here
https://airsdk.harman.com/release_notes

and for other things maybe look into the issues there

it seems those crashes are related to some ANE using some old/private API
#303 Change in build 98 makes ANEs crash at startup
#304 Still has crash with last AIR 33.1.1.98

see also closed issues like
#301 Immediately crashing on startup

The crash is resolved when we delete the below keys from app.xml.

key>UILaunchStoryboardName</key
string>LaunchScreen</string

Yes, going to find the minimal build, which crashes (absolute minimal build, with a pure Main class, does not crash, as I checked) and will update the thread

1 Like

Looks like now I have the solid information.
The absolute minimum build (with only a Main.as without no resources, anes, etc, crashes on startup on Samsung Galaxy S6. It runs well on Samsung Galaxy A30s.

The crashes on GalaxyS6 took place when I tried to run x64 version on it, as well as x32 version.

I’m using AIR 33.1.1.98 to compile, namespace in application.xml is 33.1, swf version is 44

The project with the apk is here: https://www.dropbox.com/s/rthewmddhsgkg53/Air331CrashTest.zip?dl=0
AIR for this project is meant to be in D:\Tools\Air\33_1\

When I tried to launch the game on the phone, while running adb logcat -v long *:W, I got:

[ 05-03 10:35:23.547 818: 818 E/AndroidRuntime ]
FATAL EXCEPTION: main
Process: com.air331.crashtest, PID: 818
java.lang.RuntimeException: Canvas: trying to draw too large(175509504bytes) bitmap.
at android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:260)
at android.graphics.Canvas.drawBitmap(Canvas.java:1420)
at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:545)
at android.widget.ImageView.onDraw(ImageView.java:1286)
at android.view.View.draw(View.java:18318)
at android.view.View.updateDisplayListIfDirty(View.java:17296)
at android.view.View.draw(View.java:18080)
at android.view.ViewGroup.drawChild(ViewGroup.java:3966)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3752)
at android.view.View.updateDisplayListIfDirty(View.java:17291)
at android.view.View.draw(View.java:18080)
at android.view.ViewGroup.drawChild(ViewGroup.java:3966)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3752)
at android.view.View.updateDisplayListIfDirty(View.java:17291)
at android.view.View.draw(View.java:18080)
at android.view.ViewGroup.drawChild(ViewGroup.java:3966)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3752)
at android.view.View.updateDisplayListIfDirty(View.java:17291)
at android.view.View.draw(View.java:18080)
at android.view.ViewGroup.drawChild(ViewGroup.java:3966)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3752)
at android.view.View.draw(View.java:18321)
at com.android.internal.policy.DecorView.draw(DecorView.java:919)
at android.view.View.updateDisplayListIfDirty(View.java:17296)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:692)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:698)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:806)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:3128)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2924)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2516)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1515)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7091)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
at android.view.Choreographer.doCallbacks(Choreographer.java:702)
at android.view.Choreographer.doFrame(Choreographer.java:638)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)

[ 05-03 10:35:23.551 3652: 5414 W/ActivityManager ]
Force finishing activity com.air331.crashtest/.AppEntry

So, looks like the Splash screen was intended to be too large (175MB). I hope this will help in the new update.

Andrew confirmed that they received this bug report and will look into it.

1 Like