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

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

#1

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!


#2

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


#3

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


#4

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?


#5

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


#6

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?


#7

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


#8

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


#9

Waiting for solution. Good luck! :slight_smile:


#10

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.


#11

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.


#12

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


#13

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


#14

I was never able to solve this. I really believe it’s corrupted installations.


#15

Any fix for this issue so far?


#16

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.


#17

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


#18

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.