Google featured our game and now we have a ton of crashes!

Google feature our game Compulsive today and now we have a ton of crashes. Can you help figure out whatā€™s wrong?

Stack:

java.lang.ExceptionInInitializerError
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1409)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: Couldn't load compulsive: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:429)
at java.lang.System.loadLibrary(System.java:554)
at com.tmsoft.compulsive.Compulsive.(Compulsive.java:30)
... 15 more

Devices:

Galaxy Ace (GT-S5830i)  11  16.9%
Optimus L3 (e0) 8   12.3%
Galaxy Y (GT-S5360L)    5   7.7%
Galaxy Ace (GT-S5830)   5   7.7%
Wildfire S (marvel) 5   7.7%
Galaxy Y (GT-S5360) 4   6.2%
GT-S5360T (GT-S5360T)   3   4.6%
Galaxy Mini (GT-S5570)  3   4.6%
Optimus One (thunderc)  2   3.1%
Galaxy Ace (GT-S5830M)  2   3.1%
s8034   2   3.1%
Galaxy Y Pro (GT-B5510) 1   1.5%
XT316 (XT316)   1   1.5%
BLU 1   1.5%
ALCATEL_ONE_TOUCH_903 (one_touch_903_gsm)   1   1.5%
LG-AS680 (as680)    1   1.5%
ZTE-SKATE (skate)   1   1.5%
Chaser (chaser-921) 1   1.5%
Galaxy Y (GT-S5363) 1   1.5%
Galaxy Ace (GT-S5830D)  1   1.5%
Milano (C5120)  1   1.5%
Galaxy Ace (GT-S5839i)  1   1.5%
HTC Salsa C510e (icong) 1   1.5%
N762 (roamer)   1   1.5%
Blade (blade)   1   1.5%
X500_USA_General (X500) 1   1.5%

Our Manifest:

Any advice?

Iā€™ve seen this post: http://www.cocos2d-x.org/forums/20/topics/38931 which seems to think the minSdkVersion should be 9 but the device version of crashes are Android 2.3.3 - 2.3.7.

Download link: https://play.google.com/store/apps/details?id=com.tmsoft.compulsive

Please give me any advice you might have! THANKS!

I think you are building for areabi-v7 only.
In Application.mk add
APP_ABI := armeabi armeabi-v7a x86

and build again.
I should work

THANK YOU! We will give that a shot. Iā€™m surprised that flag isnā€™t included w/ the sample code.

I just checked the we were building for armeabi. I changed it to armeabi, armeabi-v7a but think itā€™s not going to help. Any other ideas?

Here is my similar topic, but without satisfied solution :frowning:

I havenā€™t checked every device from your list, but it seems that all of them use processors based on ARMv6 architecture. So building for armeabi should work fine (and adding armeabi-v7a definitely wonā€™t help).
Are you sure your app does not use any ARMv7 (or some other architecture) specific code?

I canā€™t imagine there being anything ARMv7 specific in the code. Itā€™s pretty much stock cocos2dx 2.2 with libraries like mopub, facebook, google play services, etc. I might just have to buy an ARM6 device and see what is going on. Iā€™ve read in other places that it could also be the download from the play store getting corrupted causing the findlibrary call to fail. It seems like I have the exact same problem as Tobias S. It sure would be great to get an answer on thisā€¦ Does anyone out there have an ARM6 device they could try out my game? https://play.google.com/store/apps/details?id=com.tmsoft.compulsive

Just bought a Samsung Ace which is ARMv6 and giving us the most crashes. Iā€™ll give you an update once it arrives.

Waiting for solution. Good luck! :slight_smile:

I received my Samsung Ace phone which has a bunch of crashes in the dev console. Downloaded my game from play store and it ran without issue. No crashes. So itā€™s not the device from what I can tell. I think this is a software delivery issue from the play store.

Well, thatā€™s weird. I havenā€™t heard about delivery issues of Play Store.
It would be great if you could find some advanced user who could send you the ā€œcorruptedā€ (if it is) apk he/she downloaded from Play Store for investigation.

So why this error occurs only on specific group of devices?

It seems youā€™ve just updated the game on the Google Play Store. Have you fixed the issue?

I was never able to solve this. I really believe itā€™s corrupted installations.

Any fix for this issue so far?

I spoke with the cocos2dx developers at GDC on this issue and they believe these older devices just run out of memory and so the call to load library fails.

I would suggest you to google up problematic devices that crashes in most of the games due to poor
implementation of GPU drivers and exclude them in developer console. BTW most of devices are Samsung with this issue, there are others but these are most problematic.

Here is what should you exclude, google for more.
short list:
All Galaxy ACE series
All Galaxy Y series
All Galaxy Pocket

long list:
Galaxy Miniā€“ SGH-T499
Galaxy Aceā€“ GT-S5839i
Galaxy Ace Qā€“ SGH-I827D
Galaxy Miniā€“ SGH-T499Y
Galaxy Aceā€“ GT-S5830L
Galaxy Yā€“ GT-S5360B
Galaxy Y Duosā€“ GT-S6102
Galaxy Y Proā€“ GT-B5510
Galaxy Aceā€“ GT-S5838
Galaxy Y TVā€“ GT-S5367
Galaxy Yā€“ GT-S5369
Galaxy Ace Duosā€“ GT-S6802B
Galaxy Y Plusā€“ coriplusds
Galaxy Aceā€“ GT-S5830M
Galaxy Y Pro Duosā€“ GT-B5512
Galaxy Ace Duosā€“ SCH-I589
Galaxy Miniā€“ GT-S5570I
Galaxy Ace Plusā€“ GT-S7500L
Galaxy Aceā€“ GT-S5830G
Galaxy Aceā€“ GT-S5830D
Galaxy Aceā€“ GT-S5830i
Galaxy Aceā€“ SCH-I619
Galaxy Aceā€“ GT-S5831i
Galaxy Pocketā€“ GT-S5300B
Galaxy Yā€“ GT-S5360L
Galaxy Aceā€“ GT-S5830C
Galaxy Pocketā€“ GT-S5302
Galaxy Miniā€“ SGH-T499V
Galaxy Ace Advanceā€“ GT-S6800
Galaxy Yā€“ SCH-i509
Galaxy Miniā€“ GT-S5570
Galaxy Ace Plusā€“ GT-S7508
Galaxy Yā€“ GT-S5363
Galaxy Yā€“ GT-S5360
Galaxy Aceā€“ SHW-M240S
Galaxy Ace Duosā€“ SCH-I579
Galaxy Aceā€“ GT-S5830B
Galaxy Ace Plusā€“ GT-S7500W
Galaxy Aceā€“ GT-S6358
Galaxy Y Popā€“ GT-S6108
Galaxy Pocketā€“ GT-S5302B
Galaxy Aceā€“ GT-S5830T
Galaxy Ace Duosā€“ SCH-i579
Galaxy Miniā€“ GT-S5570L
Galaxy Y Proā€“ GT-B5510L
Galaxy Pocketā€“ GT-S5300
Galaxy Music Duos ā€“ ivory
Galaxy Y Duosā€“ GT-S6102B
Galaxy Yā€“ GT-S5368
Galaxy Ace Duosā€“ GT-S6352
Galaxy Aceā€“ GT-S5830
Galaxy Aceā€“ GT-S5830F
Galaxy Yā€“ SCH-I509
Galaxy Miniā€“ GT-S5578
Galaxy Ace Duosā€“ SCH-i589
Galaxy Y Proā€“ GT-B5510B
Galaxy Miniā€“ GT-S5570B
Galaxy Ace Duosā€“ GT-S6802
Galaxy Y Pro Duos

1 Like

That is the same list I have filtering out, or very very close.

Cocos2d-x still has the widest device support Iā€™ve been able to find.

These Galaxy Ace/Y/Mini devices just donā€™t have the GPU memory.

I also filter a few low end early model HTC devices.

Using a good quality crash reporting and symoblication service is key to knowing what devices arenā€™t working.

1 Like