Crashes on multiple plugins (Game Services, Admob-v2, Google-IAP-v3)

Hi,

This seems to be my first post on these forums, so it’s about time!

We published our game RGB Express on Android this week and we’re seeing a few problems mostly with the plug-ins - and mostly with Android 5.0 Lollipop. At least Google Play Game Services, Google IAP v3 and Admob-v2 plugins all seem to have problems. The game is built with Corona Pro v2014.2506.

I can make the bug reports for these, but I can’t supply code to always reproduce the problems. Also, please tell if these already have been reported.

Summary of the bugs:

  1. Google Play Game Services plugin - init or sign-in crashes occasionally on Android 5.0.0 Lollipop devices

  2. Google IAP v3 - Initiating store doesn’t always seem to work: store.isActive is not neccessarily true after store.init (seems to be related to this topic: http://forums.coronalabs.com/topic/49095-google-iap-v3-crash/))

  3. Google IAP v3 - Occasional crashing when using IAPs

  4. Admob (ads-admob-v2) - loading the plugin can fail, occuring at least on Android 5.0.0 Lollipop

… and a bit more details:

1) Google Play Game Services related crash. Only seen on Android 5.0.0 Lollipop devices, sign-in and/or opening achievements seems to crash sometimes. Problem usually disappears if the device and app are restarted based on player feedback:

Process: com.google.android.gms.ui, PID: 7823 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.getLocationInWindow(int[])' on a null object reference [12-04 19:01:41.915 25055:25339 E/GooglePlayServicesUtil] The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

2) Google IAP v3 init fails:

java.lang.IllegalStateException: Lua state is closed at com.naef.jnlua.LuaState.check(Unknown Source) at com.naef.jnlua.LuaState.rawGet(Unknown Source) at plugin.google.iap.v3.LuaLoader$1.onIabSetupFinished(LuaLoader.java:167) at plugin.google.iap.v3.util.IabHelper$1.onServiceConnected(IabHelper.java:262) at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1203) at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1220) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

3) Google IAP v3 Crash (reported on Android 4.4):   

java.lang.NullPointerException at plugin.google.iap.v3.util.IabHelper.queryPurchases(IabHelper.java:817) at plugin.google.iap.v3.util.IabHelper.queryInventory(IabHelper.java:540) at plugin.google.iap.v3.util.IabHelper$2.run(IabHelper.java:613) at java.lang.Thread.run(Thread.java:864)

4) AdMob-v2 load/init fail on Android 5.0.0:

ava.lang.RuntimeException: /Users/jenkins/slaveroot/workspace/Templates/label/android/librtt/Corona/CoronaLibrary.lua:94: ERROR: Could not load provider (admob) due to the following reason: /Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:820: module 'CoronaProvider.ads.admob' not found:resource (CoronaProvider.ads.admob.lu) does not exist in archive no field package.preload['CoronaProvider.ads.admob'] no file '(null)/CoronaProvider.ads.admob.lua' no file '(null)/CoronaProvider.ads.admob.lua' no file '/data/app/com.badcrane.rgbexpress-1/lib/arm/libCoronaProvider.ads.admob.so' no file './CoronaProvider.ads.admob.so' no file '(null)/CoronaProvider.ads.admob.so' no file '/data/app/com.badcrane.rgbexpress-1/lib/arm/libCoronaProvider.so' no file './CoronaProvider.so' no file '(null)/CoronaProvider.so'. stack traceback: [C]: ? [C]: in function 'assert' /Users/jenkins/slaveroot/workspace/Templates/label/android/librtt/Corona/CoronaLibrary.lua:94: in function 'requireProvider' /Users/jenkins/slaveroot/workspace/Templates/label/android/librtt/Corona/CoronaLibrary.lua:119: in function 'setCurrentProvider' ?: in function 'init' ?: in function 'listener' /Users/jenkins/slaveroot/workspace/Templates/label/android/subrepos/timer/timer.lua:173: in function 'method' /Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:253: in function \</Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:221\>

I wanted to write this summary that there are problems with the plugins at the moment, especially on the Lollipop. Maybe it’ll be best to start own threads to continue handling these bugs. Please tell if these threads already exist, at least the issue #2 seems to be reported here too: http://forums.coronalabs.com/topic/49095-google-iap-v3-crash/ and please tell if bug reports already exist for these bugs. Thanks!

Markus // Bad Crane

Hi Markus,

This was discussed today with the engineers and the overall team. Here are some observations and some things which you can help us with to narrow down the issue(s):

  1. We have done tests of Android L at Google’s testing lab. Also, note that there is limited deployment of Android L devices right now, either new devices or via OTA updates (http://beta.techradar.com/news/phone-and-communications/mobile-phones/android-l-5-0-release-date-when-can-i-get-it–1257804).

  2. Can you confirm that issues #2 and #3 are happening on any Android version, and not just Android L?

  3. Do you see the same issues with our sample code, if you can run similar tests using it?

  4. Given multiple IAP reports, we’ll probably be looking into that first.

Best regards,

Brent

Hi Brent,

  1. As RGB Express’ Android launch got a bit of media coverage on some Android news sites last week, a quite big part of our audience currently seems to be their readers: early adopters with high end devices and Android 5.0. In Google Play dashboard the “Installs by device” shows 19.99% share for Android 5.0.0 (compared to 0.63% of 5.0.0 users for All apps in puzzle category). So we already have some thousands of users with Android 5.0 L, and this Google Play sign-in is probably the most reported issue of the game at the moment.
  1. Yes, we can confirm that both of these bugs are occuring on earlier Androids as well. Most of the reports are from 5.0.0 it seems.

#2: reported crashes from 5.0.0 + 4.4

#3: reported crashes from 5.0.0 + 4.4 + 2.3.3. 

Issue #3 now shows a bit more info on Google Play dashboard:

java.lang.NullPointerException: Attempt to invoke interface method ‘android.os.Bundle com.android.vending.billing.IInAppBillingService.getPurchases(int, java.lang.String, java.lang.String, java.lang.String)’ on a null object reference

at plugin.google.iap.v3.util.IabHelper.queryPurchases(IabHelper.java:817)

at plugin.google.iap.v3.util.IabHelper.queryInventory(IabHelper.java:540)

at plugin.google.iap.v3.util.IabHelper$2.run(IabHelper.java:613)

at java.lang.Thread.run(Thread.java:818)

  1. I haven’t caught these bugs myself, just receiving bug reports. One of our beta testers was able to see the issue #1 happen on his Nexus 5 / Android 5.0.0. I just got a Nexus 5 for testing myself and I will try out reproducing the bugs myself.

Could you tell me which if these 4 issues already have bug reports, and should I create new reports? (Even if I probably can’t deliver example code that would always reproduce the bugs). Thanks!

Hi Markus,

Our engineers fixed a few things in the Google IAP v3 plugin within the last week or so. Can you rebuild your app and, if you can test on your own Nexus 5, see if you can reproduce issues #2 and #3 which are related to IAP? Assuming we can squash that issue first, then we can investigate the others.

Thanks,

Brent

Hi Markus,

Also, can you try to build and test the following sample project?

https://github.com/coronalabs/plugins-sample-gameNetwork-google

Then, see if you can reproduce the same issue with logging in, and also let me know if/how you’re doing anything differently than that sample.

Brent

Hi! I’ve not witnessed the issues #2 or #3 myself, only seen them from Google Play dasboard / crash reports. We’ll try to push an update for the game as soon as possible, I’ll report you if these crash reports will disappear.

About issue #1 / Google Play Game Services bug: I cleaned my code, and the sign-in in the startup seems to be working now. I’m not 100% sure what eventually did the trick, but I couldn’t reproduce any crashes.

However, opening and closing (and opening again) achievements view many times eventually crashes the game with Nexus 5 / Android 5.0.0. Sometimes this takes many tries. I also saw similar kind of crash with the game Freeze! when testing it as a reference with 5.0.0. I couldn’t reproduce this bug at all with Note 2 / Android 4.4.2.

Here’s a longer version what this GPGS crash looks like on Android 5.0.0 when opening achievements view:

I/ActivityManager( &nbsp;748): START u0 {act=com.google.android.gms.games.VIEW\_ACHIEVEMENTS dat=version:4242000 flg=0x4000000 pkg=com.google.android.gms cmp=com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity} from uid 10082 on display 0 W/PopupManager( 5443): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view. W/GmsClientEvents( 5443): registerConnectionCallbacks(): listener AchievementFragment{69cdf55 #0 id=0x7f0f01d8} is already registered W/GmsClientEvents( 5443): registerConnectionFailedListener(): listener AchievementFragment{69cdf55 #0 id=0x7f0f01d8} is already registered I/ActivityManager( &nbsp;748): Displayed com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity: +119ms D/AndroidRuntime( 5443): Shutting down VM E/AndroidRuntime( 5443): FATAL EXCEPTION: main E/AndroidRuntime( 5443): Process: com.google.android.gms.ui, PID: 5443 E/AndroidRuntime( 5443): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.getLocationInWindow(int[])' on a null object reference E/AndroidRuntime( 5443): at com.google.android.play.a.a.a(SourceFile:128) E/AndroidRuntime( 5443): at com.google.android.gms.games.ui.cp.run(SourceFile:45) E/AndroidRuntime( 5443): at com.google.android.gms.games.ui.co.a(SourceFile:51) E/AndroidRuntime( 5443): at android.support.v7.widget.br.run(SourceFile:248) E/AndroidRuntime( 5443): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) E/AndroidRuntime( 5443): at android.view.Choreographer.doCallbacks(Choreographer.java:580) E/AndroidRuntime( 5443): at android.view.Choreographer.doFrame(Choreographer.java:549) E/AndroidRuntime( 5443): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) E/AndroidRuntime( 5443): at android.os.Handler.handleCallback(Handler.java:739) E/AndroidRuntime( 5443): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 5443): at android.os.Looper.loop(Looper.java:135) E/AndroidRuntime( 5443): at android.app.ActivityThread.main(ActivityThread.java:5221) E/AndroidRuntime( 5443): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 5443): at java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime( 5443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) E/AndroidRuntime( 5443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) W/ActivityManager( &nbsp;748): &nbsp; Force finishing activity com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity W/ActivityManager( &nbsp;748): &nbsp; Force finishing activity com.badcrane.rgbexpress/com.ansca.corona.CoronaActivity I/OpenGLRenderer( &nbsp;748): Initialized EGL, version 1.4 W/ActivityManager( &nbsp;748): Activity pause timeout for ActivityRecord{9c7c339 u0 com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity t186 f}

Markus

Hi Markus,

Since you say that you can reproduce it with the Freeze app, I was wondering if you could also do it on another app which is not Corona based.  The stack trace you gave indicates an issue with Google Play services.

Hi! I tested a few non-Corona games with Nexus 5 / Android 5.0.0: Cut the Rope 2, Plants vs Zombies 2 and Smash Hit: I was able to get all of them to crash with the same sequence of going to achievements view and back… So it seems the Google Play services itself has some stability problems on 5.0.0.

However, it feels like that this crash happens more often with our game. Anyway, we’ll be submitting an update soon for the game and we’ll follow closely if some of these bugs I reported have disappeared.

A short update related to Google Play Game Services:

Google now updated the Google Play Games to version 2.2.05 that contains stability improvements and bugfixes. This update seems to have improved the stability a lot on Android 5.0.0. We have experienced only one crash on 5.0.0 by quickly toggling between achievements view and the game. Additionally, we haven’t seen a single crash ourselves yet with Android 5.0.1 on Nexus 7 (2013 model).

Hi!

Our current status is that Google Play Games 2.2.05 / Google Play services 6.5.99 (or some bit earlier version too) seems to be eliminating the Google Play Games problem (issue #1). Players who were experiencing problems are sending feedback that the game is working fine now when they updated Google Play games. Also we haven’t seen any crash reports from issues #2 or #3 either.

However, there still seems to be something wrong with the Google IAP v3 init (a rare one, one single report from Android 4.0.3-4.0.4):

java.lang.RuntimeException: java.lang.NullPointerException Java Stack Trace: plugin.google.iap.v3.util.IabHelper.startSetup(IabHelper.java:269) plugin.google.iap.v3.LuaLoader.init(LuaLoader.java:159) plugin.google.iap.v3.LuaLoader.access$1300(LuaLoader.java:36) plugin.google.iap.v3.LuaLoader$InitWrapper.invoke(LuaLoader.java:419) com.ansca.corona.JavaToNativeShim.nativeRender(Native Method) com.ansca.corona.JavaToNativeShim.render(JavaToNativeShim.java:175) com.ansca.corona.Controller.updateRuntimeState(Controller.java:293) com.ansca.corona.graphics.opengl.CoronaGLSurfaceView$CoronaRenderer.onDrawFrame(CoronaGLSurfaceView.java:417) com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1622) com.ansca.corona.graphics.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1377) stack traceback: [C]: ? [C]: in function 'init' ?: in function 'listener' /Users/jenkins/slaveroot/workspace/Templates/label/android/subrepos/timer/timer.lua:173: in function 'method' /Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:253: in function \</Users/jenkins/slaveroot/workspace/Templates/label/android/platform/resources/init.lua:221\>

Also, we added a couple of seconds delay between the loading the admob module, and performing ads.init() for it in the game startup: I’m not sure if this helped, but we haven’t seen any signs of issue #4 either.

One last thing, we are not sure if this is the report caused by the Google Play Games crash problem, but this is only occuring with Android 5.0.0 and this is the most common one we’ve been receiving (31 reports):

java.lang.RuntimeException: Unable to pause activity {com.badcrane.rgbexpress/com.ansca.corona.CoronaActivity}: java.util.ConcurrentModificationException at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3225) at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3184) at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3159) at android.app.ActivityThread.access$1000(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1289) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787) at java.util.HashMap$KeyIterator.next(HashMap.java:814) at com.ansca.corona.MediaManager.pauseAll(MediaManager.java:244) at com.ansca.corona.Controller.stop(Controller.java:251) at com.ansca.corona.CoronaActivity.requestSuspendCoronaRuntime(CoronaActivity.java:922) at com.ansca.corona.CoronaActivity.onPause(CoronaActivity.java:780) at android.app.Activity.performPause(Activity.java:6044) at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1294) at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3211) ... 11 more

Markus

Can you try to rebuild again and test the store.init() call.

Rob

Hi Rob,

Thanks! We will follow the situation with the next update, as we can’t reproduce the store.init() error ourselves but have just been receiving crash reports.

And an update to the Google Play issue: there still seems to be crashes, at least on Android 5.0.0 devices when opening / closing achievements view. Also seems to happen with the latest Google Play services (version 6.5.99).

Markus

Hi again,

We are still seeing the issue #1, Google Play services crash with RGB Express when opening and closing achievements view few times in a row. We’ve only seen this happening on Nexus 5 and LG G2 devices. A dialog with “Unfortunately, Google Play services has stopped.” is displayed when calling gameNetwork.show( “achievements” ).

Sometimes the crash occurs already in the first time when opening the achievements view, and if the crash occurs and we try to restart the game and the achievements view, Google Play usually crashes again second time in a row.

  • Nexus 5 / Android 5.0.1 always eventually crashes. Crashed also with Android 5.0.0.

  • LG G2 / Android 4.4.2 always eventually crashes  (practically same device as Nexus 5)

  • Nexus 7 (2013 model) / Android 5.0.1: does NOT crash. Nor any other device we’ve tested besides Nexus 5 / LG G2.

  • Corona SDK 2015.2538 in use, but the behaviour was identical with previous builds / SDK versions too.

This bug seems to occur most often with RGB Express, less often with Freeze! (a Corona SDK game as well), and least often with native Android games. Native games eventually seem to crash too by opening/closing the achievements view *many* times in a row on Nexus 5, but the crash occurs a bit too often with our game and we’ve received some complaints about this.

The crash still looks the same as before:

I/ActivityManager( &nbsp;740): START u0 {act=com.google.android.gms.games.VIEW\_ACHIEVEMENTS dat=version:4242000 flg=0x4000000 pkg=com.google.android.gms cmp=com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity} from uid 10119 on display 0 W/PopupManager( 4641): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view. W/GmsClientEvents( 4641): registerConnectionCallbacks(): listener AchievementFragment{3d6997e4 #0 id=0x7f0f01d8} is already registered W/GmsClientEvents( 4641): registerConnectionFailedListener(): listener AchievementFragment{3d6997e4 #0 id=0x7f0f01d8} is already registered I/ActivityManager( &nbsp;740): Displayed com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity: +104ms D/AndroidRuntime( 4641): Shutting down VM E/AndroidRuntime( 4641): FATAL EXCEPTION: main E/AndroidRuntime( 4641): Process: com.google.android.gms.ui, PID: 4641 E/AndroidRuntime( 4641): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.getLocationInWindow(int[])' on a null object reference E/AndroidRuntime( 4641): at com.google.android.play.a.a.a(SourceFile:128) E/AndroidRuntime( 4641): at com.google.android.gms.games.ui.cp.run(SourceFile:45) E/AndroidRuntime( 4641): at com.google.android.gms.games.ui.co.a(SourceFile:51) E/AndroidRuntime( 4641): at android.support.v7.widget.br.run(SourceFile:248) E/AndroidRuntime( 4641): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) E/AndroidRuntime( 4641): at android.view.Choreographer.doCallbacks(Choreographer.java:580) E/AndroidRuntime( 4641): at android.view.Choreographer.doFrame(Choreographer.java:549) E/AndroidRuntime( 4641): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) E/AndroidRuntime( 4641): at android.os.Handler.handleCallback(Handler.java:739) E/AndroidRuntime( 4641): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 4641): at android.os.Looper.loop(Looper.java:135) E/AndroidRuntime( 4641): at android.app.ActivityThread.main(ActivityThread.java:5221) E/AndroidRuntime( 4641): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 4641): at java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime( 4641): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) E/AndroidRuntime( 4641): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) W/ActivityManager( &nbsp;740): &nbsp; Force finishing activity com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity W/ActivityManager( &nbsp;740): &nbsp; Force finishing activity com.badcrane.rgbexpress/com.ansca.corona.CoronaActivity I/Adreno-EGL( &nbsp;740): \<qeglDrvAPI\_eglInitialize:410\>: QUALCOMM Build: 10/24/14, 167c270, I68fa98814b I/OpenGLRenderer( &nbsp;740): Initialized EGL, version 1.4 W/ActivityManager( &nbsp;740): Activity pause timeout for ActivityRecord{3f834557 u0 com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity t2039 f} E/Sensors ( &nbsp;192): sns\_acm\_mr.c(432):Transport error -45 I/OpenAL\_SLES( 3634): opensles\_stop\_playback device=0x7ee98000 I/OpenAL\_SLES( 3634): opensles\_close\_playback pDevice=0x7ee98000 W/OpenGLRenderer( 1199): Incorrectly called buildLayer on View: aep, destroying layer... W/OpenGLRenderer( 1199): Incorrectly called buildLayer on View: aep, destroying layer...

Does anyone else have Google Play achievements in their Corona games and a Nexus 5 or LG G2 as a test device? Have you seen this bug occuring?

Markus

Hi Markus,

Weirdly I’m having the exact same crash error in my game, build with Gideros. Maybe it’s a Google Play issue rather than a Corona/Gideros issue.

It’s likely that when we solve this problem on Corona or Gideros it will work on the other. 

Cheers,

Niclas

It appears this issue also occurs in Unity: https://github.com/playgameservices/play-games-plugin-for-unity/issues/369

Hi Markus,

This was discussed today with the engineers and the overall team. Here are some observations and some things which you can help us with to narrow down the issue(s):

  1. We have done tests of Android L at Google’s testing lab. Also, note that there is limited deployment of Android L devices right now, either new devices or via OTA updates (http://beta.techradar.com/news/phone-and-communications/mobile-phones/android-l-5-0-release-date-when-can-i-get-it–1257804).

  2. Can you confirm that issues #2 and #3 are happening on any Android version, and not just Android L?

  3. Do you see the same issues with our sample code, if you can run similar tests using it?

  4. Given multiple IAP reports, we’ll probably be looking into that first.

Best regards,

Brent

Hi Brent,

  1. As RGB Express’ Android launch got a bit of media coverage on some Android news sites last week, a quite big part of our audience currently seems to be their readers: early adopters with high end devices and Android 5.0. In Google Play dashboard the “Installs by device” shows 19.99% share for Android 5.0.0 (compared to 0.63% of 5.0.0 users for All apps in puzzle category). So we already have some thousands of users with Android 5.0 L, and this Google Play sign-in is probably the most reported issue of the game at the moment.
  1. Yes, we can confirm that both of these bugs are occuring on earlier Androids as well. Most of the reports are from 5.0.0 it seems.

#2: reported crashes from 5.0.0 + 4.4

#3: reported crashes from 5.0.0 + 4.4 + 2.3.3. 

Issue #3 now shows a bit more info on Google Play dashboard:

java.lang.NullPointerException: Attempt to invoke interface method ‘android.os.Bundle com.android.vending.billing.IInAppBillingService.getPurchases(int, java.lang.String, java.lang.String, java.lang.String)’ on a null object reference

at plugin.google.iap.v3.util.IabHelper.queryPurchases(IabHelper.java:817)

at plugin.google.iap.v3.util.IabHelper.queryInventory(IabHelper.java:540)

at plugin.google.iap.v3.util.IabHelper$2.run(IabHelper.java:613)

at java.lang.Thread.run(Thread.java:818)

  1. I haven’t caught these bugs myself, just receiving bug reports. One of our beta testers was able to see the issue #1 happen on his Nexus 5 / Android 5.0.0. I just got a Nexus 5 for testing myself and I will try out reproducing the bugs myself.

Could you tell me which if these 4 issues already have bug reports, and should I create new reports? (Even if I probably can’t deliver example code that would always reproduce the bugs). Thanks!

Hi Markus,

Our engineers fixed a few things in the Google IAP v3 plugin within the last week or so. Can you rebuild your app and, if you can test on your own Nexus 5, see if you can reproduce issues #2 and #3 which are related to IAP? Assuming we can squash that issue first, then we can investigate the others.

Thanks,

Brent

Hi Markus,

Also, can you try to build and test the following sample project?

https://github.com/coronalabs/plugins-sample-gameNetwork-google

Then, see if you can reproduce the same issue with logging in, and also let me know if/how you’re doing anything differently than that sample.

Brent

Hi! I’ve not witnessed the issues #2 or #3 myself, only seen them from Google Play dasboard / crash reports. We’ll try to push an update for the game as soon as possible, I’ll report you if these crash reports will disappear.

About issue #1 / Google Play Game Services bug: I cleaned my code, and the sign-in in the startup seems to be working now. I’m not 100% sure what eventually did the trick, but I couldn’t reproduce any crashes.

However, opening and closing (and opening again) achievements view many times eventually crashes the game with Nexus 5 / Android 5.0.0. Sometimes this takes many tries. I also saw similar kind of crash with the game Freeze! when testing it as a reference with 5.0.0. I couldn’t reproduce this bug at all with Note 2 / Android 4.4.2.

Here’s a longer version what this GPGS crash looks like on Android 5.0.0 when opening achievements view:

I/ActivityManager( &nbsp;748): START u0 {act=com.google.android.gms.games.VIEW\_ACHIEVEMENTS dat=version:4242000 flg=0x4000000 pkg=com.google.android.gms cmp=com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity} from uid 10082 on display 0 W/PopupManager( 5443): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view. W/GmsClientEvents( 5443): registerConnectionCallbacks(): listener AchievementFragment{69cdf55 #0 id=0x7f0f01d8} is already registered W/GmsClientEvents( 5443): registerConnectionFailedListener(): listener AchievementFragment{69cdf55 #0 id=0x7f0f01d8} is already registered I/ActivityManager( &nbsp;748): Displayed com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity: +119ms D/AndroidRuntime( 5443): Shutting down VM E/AndroidRuntime( 5443): FATAL EXCEPTION: main E/AndroidRuntime( 5443): Process: com.google.android.gms.ui, PID: 5443 E/AndroidRuntime( 5443): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.ViewGroup.getLocationInWindow(int[])' on a null object reference E/AndroidRuntime( 5443): at com.google.android.play.a.a.a(SourceFile:128) E/AndroidRuntime( 5443): at com.google.android.gms.games.ui.cp.run(SourceFile:45) E/AndroidRuntime( 5443): at com.google.android.gms.games.ui.co.a(SourceFile:51) E/AndroidRuntime( 5443): at android.support.v7.widget.br.run(SourceFile:248) E/AndroidRuntime( 5443): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767) E/AndroidRuntime( 5443): at android.view.Choreographer.doCallbacks(Choreographer.java:580) E/AndroidRuntime( 5443): at android.view.Choreographer.doFrame(Choreographer.java:549) E/AndroidRuntime( 5443): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753) E/AndroidRuntime( 5443): at android.os.Handler.handleCallback(Handler.java:739) E/AndroidRuntime( 5443): at android.os.Handler.dispatchMessage(Handler.java:95) E/AndroidRuntime( 5443): at android.os.Looper.loop(Looper.java:135) E/AndroidRuntime( 5443): at android.app.ActivityThread.main(ActivityThread.java:5221) E/AndroidRuntime( 5443): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 5443): at java.lang.reflect.Method.invoke(Method.java:372) E/AndroidRuntime( 5443): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) E/AndroidRuntime( 5443): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) W/ActivityManager( &nbsp;748): &nbsp; Force finishing activity com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity W/ActivityManager( &nbsp;748): &nbsp; Force finishing activity com.badcrane.rgbexpress/com.ansca.corona.CoronaActivity I/OpenGLRenderer( &nbsp;748): Initialized EGL, version 1.4 W/ActivityManager( &nbsp;748): Activity pause timeout for ActivityRecord{9c7c339 u0 com.google.android.gms/.games.ui.client.achievements.ClientAchievementListActivity t186 f}

Markus