SDKBox Play plugin saveGameDataBinary crash

SDKBox Play plugin saveGameDataBinary crash
0.0 0

#1

Hi, guys!
In my app I’m using sdkboxplay plugin (v2.3.17.7) to save user’s data to google/iOS cloud. On all of my devices it works perfectly. The problem is that in google play console I see crashes related to com.sdkbox.plugin.SdkboxGPGSavedGames.
The number of impacted users is quite small (12 devices out of 16K), but the number of crashes per device is ~6-7 for now.

There are 2 types of crashes:

  1. NullPointerException

java.lang.NullPointerException:
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:305)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:298)
at com.sdkbox.plugin.SdkboxGPGSavedGames.processSnapshotOpenResult (SdkboxGPGSavedGames.java:250)
at com.sdkbox.plugin.SdkboxGPGSavedGames.access$300 (SdkboxGPGSavedGames.java:23)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:297)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:293)
at com.google.android.gms.internal.zzbcs.handleMessage (Unknown Source)
at android.os.Handler.dispatchMessage (Handler.java:110)
at android.os.Looper.loop (Looper.java:203)
at android.app.ActivityThread.main (ActivityThread.java:6251)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:924)

  1. IllegalStateException

java.lang.IllegalStateException:
at android.os.Parcel.readException (Parcel.java:1480)
at android.os.Parcel.readException (Parcel.java:1426)
at com.google.android.gms.internal.zzed.zzb (Unknown Source)
at com.google.android.gms.games.internal.zzk.zza (Unknown Source)
at com.google.android.gms.games.internal.GamesClientImpl.zza (Unknown Source)
at com.google.android.gms.games.internal.api.zzcd.zza (Unknown Source)
at com.google.android.gms.internal.zzbck.zzb (Unknown Source)
at com.google.android.gms.internal.zzbdm.zze (Unknown Source)
at com.google.android.gms.internal.zzbej.zze (Unknown Source)
at com.google.android.gms.internal.zzbeb.zze (Unknown Source)
at com.google.android.gms.games.internal.api.zzcb.open (Unknown Source)
at com.google.android.gms.games.internal.api.zzcb.open (Unknown Source)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8.run (SdkboxGPGSavedGames.java:292)
at java.lang.Thread.run (Thread.java:841)

My code to save data looks like this:

std::string saveName = “someSaveName”;
const char* dataCString = “some user data to save”;
const void* data = static_cast<const void*>(dataCString);
int dataLength = (int)strlen(dataCString) + 1;
sdkbox::PluginSdkboxPlay::saveGameDataBinary(saveName, data, dataLength);

Any help will be appreciated.
Thanks.


#2

thank feedback, we will check our source code.


#3

can you get device info, android version or something from google console?


#4

NullPointerException
Android version:

Android 7.0 179 35.7%
Android 4.4 124 24.8%
Android 5.1 58 11.6%
Android 6.0 50 10.0%
Android 5.0 43 8.6%
Android 7.1 40 8.0%
Android 8.0 7 1.4%

Devices:

A536 (A536) 91 18.2%
A7 (A7) 50 10.0%
K5 Plus (A6020a46) 22 4.4%
Galaxy J5(2016) (j5xnlte) 19 3.8%
Galaxy S7 (herolte) 18 3.6%
BV6000s (BV6000S) 17 3.4%
Redmi Note 4 (mido) 15 3.0%
Honor 6A (HWDLI-Q) 14 2.8%
Xperia E1 (D2005) 13 2.6%
Y5 2017 (HWMYA-L6737) 12 2.4%
BLADE L0510 (P680A20) 12 2.4%
BQS-5065 12 2.4%
Redmi 4X (santoni) 12 2.4%
Galaxy J5(2017) (j5y17lte) 11 2.2%
ZenFone Go (ZB500KL) (ASUS_X00AD_2) 10 2.0%
P8 lite 2017 (HWPRA-H) 10 2.0%
Galaxy Alpha (slte) 9 1.8%
T221 (P731A20) 9 1.8%
ZenPad 8.0 (Z380KL) (P024_1) 8 1.6%
LG Magna (my90ds) 8 1.6%

IllegalStateException
Android version:

Android 4.4 57 69.5%
Android 7.0 7 8.5%
Android 5.1 6 7.3%
Android 5.0 4 4.9%
Android 7.1 4 4.9%
Android 6.0 3 3.7%
Android 8.0 1 1.2%

Devices:

Galaxy J1 (j13g) 56 68.3%
Galaxy Note5 (noblelte) 5 6.1%
Galaxy J5(2016) (j5xnlte) 3 3.7%
Galaxy Core Prime (coreprimeve3g) 3 3.7%
Pro 2 (Beeline_Pro_2) 3 3.7%
Galaxy Grand Prime (grandprimeve3g) 2 2.4%
Mi 5 (gemini) 1 1.2%
Galaxy Tab A 8.0 (gt58lte) 1 1.2%
Redmi Note 3 (kenzo) 1 1.2%
Blade L370 (ZTE_Blade_C370) 1 1.2%
Galaxy S8+ (dream2lte) 1 1.2%
Galaxy A3 (a3lte) 1 1.2%
Redmi 4 Pro (markw) 1 1.2%
Redmi Note 4 (nikel) 1 1.2%
Galaxy A3(2016) (a3xelte) 1 1.2%
Philips S337 (scx35_sp7731gea_hd) 1 1.2%

#5

Sorry, I didn’t make myself clear. Can you tell which devices are having these crashes? I want to make sure it’s related to a particular device or system.


#6

This is the distribution of these 2 crashes per devices. On all of these devices crash is happening


#7

ok, thanks, we will reserach this.


#8

Seems it happens a lot on low end devices. Maybe a google play game service version issue?


#9

I use GoogleApiAvailability stuff to verify that GooglePlayServices are available and up-to-date before making any calls to cloud save/load methods. So I think it is quite safe to exclude game services versioning issue.


#10

Hi, i’m getting similar crashes on Google Play Console:


java.lang.NullPointerException: 
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:320)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:313)
  at com.sdkbox.plugin.SdkboxGPGSavedGames.processSnapshotOpenResult (SdkboxGPGSavedGames.java:260)
  at com.sdkbox.plugin.SdkboxGPGSavedGames.access$300 (SdkboxGPGSavedGames.java:27)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:312)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:308)
  at com.google.android.gms.internal.zzbcs.handleMessage (Unknown Source)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6823)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1563)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1451)

java.lang.IllegalStateException: 
  at com.google.android.gms.internal.zzbea.zze (Unknown Source)
  at com.google.android.gms.internal.zzbej.zze (Unknown Source)
  at com.google.android.gms.internal.zzbeb.zze (Unknown Source)
  at com.google.android.gms.games.internal.api.zzcb.commitAndClose (Unknown Source)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:327)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:313)
  at com.sdkbox.plugin.SdkboxGPGSavedGames.processSnapshotOpenResult (SdkboxGPGSavedGames.java:260)
  at com.sdkbox.plugin.SdkboxGPGSavedGames.access$300 (SdkboxGPGSavedGames.java:27)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:312)
  at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:308)
  at com.google.android.gms.internal.zzbcs.handleMessage (Unknown Source)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  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)

I’m using latest sdkboxplay plugin on staging branch. The devices affected are:


Galaxy Note8
Redmi Note 4
V30
SHINE LITE
P8 Lite
A806
Redmi 4X
Galaxy S7
ZenFone 3
Galaxy S6
OnePlus5
Aquaris X Pro
Galaxy A5(2017)

About android version, most of the crashes are on Android 7.0 and Android 7.1 but there are crashes on every other OS (4, 5, 6 and 8).

No news on this? We are global launching in less than a month and this is a block issue for us, Google Play Console is getting full of orange and red warnings on Android Vitals because of this :frowning:

Invoking @htlxyz and @nite as helpers =)

Hope we get a solution soon!
Thanks in advance,
fryderyk


#11

in one or two days, we will release a new version.
and now, you can use staging version to check.
sdkbox update --staging or sdkbox import sdkboxplay --staging


#12

How is it going on ? @MAD_tomat0


#13

I’ve updated plugin to version v2.3.17.9. But the game update is not published yet. I’ll let you guys know as soon as I receive some new info about this crash.


#14

So our game update (with plugin v.2.3.17.9) is published finally. The first crash (the one with NullPointerException) is still there. The second one (IllegalStateException) has changed to:

java.lang.IllegalStateException:
at com.google.android.gms.internal.zzbea.zze (Unknown Source)
at com.google.android.gms.internal.zzbej.zze (Unknown Source)
at com.google.android.gms.internal.zzbeb.zze (Unknown Source)
at com.google.android.gms.games.internal.api.zzcb.commitAndClose (Unknown Source)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:333)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1$1.onResult (SdkboxGPGSavedGames.java:314)
at com.sdkbox.plugin.SdkboxGPGSavedGames.processSnapshotOpenResult (SdkboxGPGSavedGames.java:260)
at com.sdkbox.plugin.SdkboxGPGSavedGames.access$300 (SdkboxGPGSavedGames.java:27)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:313)
at com.sdkbox.plugin.SdkboxGPGSavedGames$8$1.onResult (SdkboxGPGSavedGames.java:309)
at com.google.android.gms.internal.zzbcs.handleMessage (Unknown Source)
at android.os.Handler.dispatchMessage (Handler.java:111)
at android.os.Looper.loop (Looper.java:227)
at android.app.ActivityThread.main (ActivityThread.java:6102)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:961)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:822)

As you can see it is the same as the one that @fryderyk88 has posted