Play-games-plugin-for-unity: Google Play Games Services plugin v10

Created on 15 Aug 2019  ·  64Comments  ·  Source: playgameservices/play-games-plugin-for-unity

Google Play Game Services is pleased to announce that Google Play Games Services plugin v10 is now available.

The new plugin now directly uses the main PGS Java SDK. As a result, the new plugin is significantly smaller and by using Proguard you may be able to decrease it even further. Directly accessing the Java SDK also makes it easier to debug issues.

Please help us to continue to improve the Plugin by reporting bugs in this version of the plugin. In a few weeks, we will merge this version into the Master branch with reported bugs addressed.

Using the new plugin

If you are already using the Google Play Games Services Plugin in your project, you can update to the new one by deleting the GooglePlayGames directory from your project and importing the new package that can be found here.

If you are not yet using Google Play Games Services Plugin, then follow the instructions in the Readme file but use the new package which can be found here instead of the one in current-build.

Most helpful comment

Mine no longer seems to fully login either. Used to say "welcome", now just pops up that box with connecting, then disappears and then ceases to exist.

Note: I forgot to mention I'm using 10.1 still.. So is there something that went down server side? (I didn't make any changes, the app just doesn't log in anymore)

All 64 comments

Testing it now. Thanks man.

I will test! Thanks!

I tried to migrate to 0.10.00, I had a problem with the GetAnotherServerAuthCode function.
The code don't includes the scopes added in the Builder, the first auth code includes the scopes but the second one only includes the default one

Then I tried to install the 0.10.01 but that version uses AndroidX libraries which broke all the plugins in our project :(

@dvillaseca it looks like for a while it could be an issue as not all libraries have migrated to AndroidX yet. Can you share which libraries you're using, so that I can look into it?
Also, you're right about GetAnotherServerAuthCode function. It's been fixed in the old plugin here, but not in this one. I'll fix it soon.

@cyraid , @Icaro-Lima if you tested the new plugin, can you share which APIs you have tested and whether you had any issues or not?

@ozdemir08 Sure.

Issues:
So far it gives some verbose "GPGSUpgrader start" and "GPGSUpgrader done" info messages on every run, would be nice to turn those off. Also still has the "OnEnable" bug (AssetDatabase.Refresh()). Also the ClearPreviewCache() bug (NRE) when you have something selected when you run and it has a preview (if you have nothing selected it doesn't pop up).

Compliments:
Thank you for fixing some of the issues with this. It overall seems a lot more stable, and I love that it does the android resolution on build. I don't have to worry about a 'I made a backup' dialog on every start (THANK YOU for that).

Apis:
Been using the authenticate (of course), and leadership boards. No issues so far. One thing for future people to look out for, SHA1 MATTERS! Internal app testing has a different SHA1 (update your google cloud console). Your SHA1 must match your key when signing for the apk. If you have app bundle, the SHA1 in cloud console must match the one given for the app signing. Those gotchas aside, I've been a lot less stressed working with this version.

Overall, feels a lot better so far. Thanks guys, and good job.
Got a new version by chance? ^_^

@ozdemir08 Oh was gonna mention.. If building an apk on the cloud using Unity Cloud build, it was trying to pop up a window and it failed.. Can you make it work for headless mode? (no popups).

Keep up the good work!

Edit: And sometimes a lot of 'possible mistaken empty statement' warnings when scripts are compiling after a change (and even in build log).

Bug: scoreData.PlayerScore.userID == "me"

PlayGamesPlatform.Instance.LoadScores(leaderboardId, LeaderboardStart.TopScores, 25, LeaderboardCollection.Public, leaderboardTimeSpan, scoreData => { });

PlayGamesPlatform.Instance.LoadMoreScores does not work

08-21 16:32:52.564 6447 6478 E Unity : NullReferenceException: Object reference not set to an instance of an object. 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine.GlobalJavaObjectRef.op_Implicit (UnityEngine.GlobalJavaObjectRef obj) [0x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine.AndroidJavaObject._Call[ReturnType] (System.String methodName, System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine._AndroidJNIHelper.GetSignature (System.Object obj) [0x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine._AndroidJNIHelper.GetSignature[ReturnType] (System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine._AndroidJNIHelper.GetMethodID[ReturnType] (System.IntPtr jclass, System.String methodName, System.Object[] args, System.Boolean isStatic) [0 x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at UnityEngine.AndroidJavaObject._Call[ReturnType] (System.String methodName, System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0 08-21 16:32:52.564 6447 6478 E Unity : at GooglePlayGames.Android.AndroidClient

There seems to be an issue with version 0.10.01
Whenever i sign out from achievements UI or leaderboard UI, Social.localUser.authenticated always returns true.

So far it gives some verbose "GPGSUpgrader start" and "GPGSUpgrader done" info messages on every run, would be nice to turn those off. Also still has the "OnEnable" bug (AssetDatabase.Refresh()). Also the ClearPreviewCache() bug (NRE) when you have something selected when you run and it has a preview (if you have nothing selected it doesn't pop up).

Can you make it work for headless mode? (no popups).

@cyraid I'm taking note of them. But as we have still some bugs to address, they won't be our top priorities right now.

Bug: scoreData.PlayerScore.userID == "me"

@frolky can you give more detail about this?

PlayGamesPlatform.Instance.LoadMoreScores does not work

@frolky I've fixed it, the fixed code will be in v10.02.

Social.localUser.authenticated always returns true.

@makmatics I've fixed this one too. We'll release v10.02 next week.

Thanks all of you for the comments!

@frolky can you give more detail about this?

What exactly? I provided the code. In the previous version of the plugin, this property returned the id of the player, and now "me"

PlayGamesPlatform.Instance.LoadScores(leaderboardId, LeaderboardStart.TopScores, 25, LeaderboardCollection.Public, leaderboardTimeSpan, scoreData => {
Debug.Log(scoreData.PlayerScore.userID); // output "me"
Debug.Log(Social.localUser.id); // output "g123456..."
});

Another quick idea would be to make it a custom package as well, so we can just add it to package manager and receive updates whenever you change the manifest.

Can you please share the exact date for the next release. We are on deadline and just waiting for stable version.

@makmatics this friday.

Testing it...

Hi, There seems to be another issue with version v10.01. When i save the game the SavedGameWritten callback is not triggered.

((PlayGamesPlatform) Social.Active).SavedGame.CommitUpdate(game, updatedMetadata, data, SavedGameWritten);

Does this plugin use API version 3?

Hi, There seems to be another issue with version v10.01. When i save the game the SavedGameWritten callback is not triggered.

((PlayGamesPlatform) Social.Active).SavedGame.CommitUpdate(game, updatedMetadata, data, SavedGameWritten);

I have tried it a couple of times and each time I was able to trigger that callback. Can you check if you're getting any logs from this code block?

You can check out v10.02 here and the change log here

You can check out v10.02 here and the change log here

I have updated the plugin to v10.02 and it is causing all sorts of crashes.
1) When i open Leaderboard UI or Achievements UI and press back i get the following Error.

E/Unity: NullReferenceException: Object reference not set to an instance of an object.
      at GooglePlayGames.Android.AndroidClient+<>c__DisplayClass48_0.<GetUiSignOutCallbackOnGameThread>b__0 (GooglePlayGames.BasicApi.UIStatus status) [0x00000] in <00000000000000000000000000000000>:0 
      at GooglePlayGames.OurUtils.PlayGamesHelperObject.Update () [0x00000] in <00000000000000000000000000000000>:0 

and when i press Sign Out from either UI the app crashes without any log message.

2) When i save the game i get the following and instantly the game freezes but the sound that was playing in my game was still playing.

2019-08-31 01:40:45.693 32110-32235/com.[PACKAGE] I/Unity: Saving progress to the cloud...
    PlayGamesManager:SaveToCloud(String)
    SettingPanelManager:SaveGameToGPGpressed()
    EventDelegate:Execute()
    EventDelegate:Execute(List`1)
    UIButton:OnClick()
    UICamera:Notify(GameObject, String, Object)
    UICamera:ProcessRelease(Boolean, Single)
    UICamera:ProcessTouch(Boolean, Boolean)
    UICamera:ProcessTouches()
    UICamera:ProcessEvents()

    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-08-31 01:40:48.455 32110-32235/com.[PACKAGE] I/Unity: Saving to GooglePlayGames.Android.AndroidSnapshotMetadata
    PlayGamesManager:SavedGameOpened(SavedGameRequestStatus, ISavedGameMetadata)
    GooglePlayGames.OurUtils.PlayGamesHelperObject:Update()

    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
2019-08-31 01:40:49.697 32110-32110/com.[PACKAGE] I/Unity: commitAndClose.succeed
    GooglePlayGames.Android.<>c__DisplayClass8_0:<CommitUpdate>b__0(AndroidJavaObject)
    System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
    UnityEngine.AndroidJavaProxy:Invoke(String, Object[])
    UnityEngine._AndroidJNIHelper:InvokeJavaProxyMethod(AndroidJavaProxy, IntPtr, IntPtr)

    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)
 JNI ERROR (app bug): accessed deleted Global 0x3876
 java_vm_ext.cc:542] JNI DETECTED ERROR IN APPLICATION: use of deleted global reference 0x3876
 java_vm_ext.cc:542]     from boolean com.unity3d.player.UnityPlayer.nativeRender()
 java_vm_ext.cc:542] "UnityMain" prio=5 tid=17 Runnable
 java_vm_ext.cc:542]   | group="main" sCount=0 dsCount=0 flags=0 obj=0x18700e70 self=0x7409882c00
 java_vm_ext.cc:542]   | sysTid=32235 nice=0 cgrp=default sched=0/0 handle=0x73facb94f0
 java_vm_ext.cc:542]   | state=R schedstat=( 101619368242 108057484399 2155958 ) utm=7103 stm=3058 core=7 HZ=100
 java_vm_ext.cc:542]   | stack=0x73fabb6000-0x73fabb8000 stackSize=1041KB
 java_vm_ext.cc:542]   | held mutexes= "mutator lock"(shared held)

and there is tons of log from native IL2CPP that I haven't pasted here.

When i open Leaderboard UI or Achievements UI and press back i get the following Error.

I made a bug in this commit, while fixing sign out from ui. I'm fixing it today and releasing v10.03 with the fix. The app I'm using for test purposes, Smoketest did not crash, so I couldn't catch the error. Thanks for reporting this. If you'd like to try it out before releasing v10.03, check out this commit.

When i save the game i get the following and instantly the game freezes but the sound that was playing in my game was still playing.

Does this one happen only in v10.02 or does it also happen in v10.01? I am looking into it, but can not reproduce it right now.
Edit: This one is about this comment, I guess. Then the question is, was it working fine in v9.64? Also, do you see any changes from v10.01 to v10.02?

Edit 2: v10.03

totally forgot about this comment. I didn't bother testing it any further because v10.02 was on it's way so i gave up on v10.01

First let me clear a few confusions here. There are two revisions of v10.01. First one was this July 8,2019 which was replaced by this second revision on Aug 15,2019.

Second revision of v10.01 was causing issues described here but when v10.02 came out it caused all of these issues so i gave up on v10.02 as well and reverted back to first revision of v10.01 which i luckily had a backup copy in my hard drive. first revision of v10.01 works fine without any other issues except for UI sign out.

Hi, I am using 10.03 above. I think you have an issue with getting the application ID through to Google. When I call PlayGamesPlatform.Activate(); without initializing, so it used the default one, a center dialog while screen dimmed appear as usual and I was asked to choose an account. However, after that there would be no drop down confirmation appearing, and in the adb logcat I would always get this :

2019/09/03 19:30:19.482 3034 3586 Warn PlayerAgent: {"code":400,"errors":[{"reason":"invalid","domain":"global","message":"Invalid applicationId with value . Reason: No application ids specified."}]}
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: onSignInFailed()...
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: Sign in failed during 8
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: ==> Returning non-OK result: 10002

Screenshot_20190903-193210
Screenshot_20190903-193215

with value . kind of hinting that it may be parsed as empty string or something. I pressed setup already and my APP ID is already here. Is it being used at all at runtime? (also you forgot to change .02 to .03)

Annotation 2019-09-03 191832

The build method is Android App Bundle, and this test is from Internal Testing, not from direct install from AAB, so the signing key should be correct, like the one real player use.

Mine no longer seems to fully login either. Used to say "welcome", now just pops up that box with connecting, then disappears and then ceases to exist.

Note: I forgot to mention I'm using 10.1 still.. So is there something that went down server side? (I didn't make any changes, the app just doesn't log in anymore)

Mine no longer seems to fully login either. Used to say "welcome", now just pops up that box with connecting, then disappears and then ceases to exist.

@cyraid Are you getting the same logs that @5argon got? If not, can you share your logs?

@ozdemir08 I'm not working with the project for awhile, but if I recall when looking in the logs, it appeared as if everything signed in okay. No errors, nothing.. Which was really puzzling. But like I said it was working at first, and I didn't change anything or upload any new version, so I'm guessing the problem has to be remotely? (only a guess)

Hi We are using v10.01 in our production release and this is the crash we are getting from users.

java.lang.Error: FATAL EXCEPTION [main] Unity version : 2018.3.5f1 Device model : OnePlus ONEPLUS A3003 Device fingerprint: OnePlus/OnePlus3/OnePlus3T:9/PKQ1.181203.001/1907311932:user/release-keys Caused by at com.google.android.gms.common.api.internal.zza.addCallback (Unknown Source:26) at com.google.android.gms.tasks.zzu$zza.<init> (Unknown Source:9) at com.google.android.gms.tasks.zzu$zza.zza (Unknown Source:4) at com.google.android.gms.tasks.zzu.addOnSuccessListener (Unknown Source:36) at com.google.games.bridge.SignInRequest.signIn (SignInRequest.java:143) at com.google.games.bridge.SignInRequest.process (SignInRequest.java:78) at com.google.games.bridge.HelperFragment.processRequest (HelperFragment.java:238) at com.google.games.bridge.HelperFragment.onResume (HelperFragment.java:281) at android.app.Fragment.performResume (Fragment.java:2568) at android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1341) at android.app.FragmentManagerImpl.moveFragmentToExpectedState (FragmentManager.java:1576) at android.app.FragmentManagerImpl.moveToState (FragmentManager.java:1637) at android.app.FragmentManagerImpl.executeOpsTogether (FragmentManager.java:2215) at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute (FragmentManager.java:2161) at android.app.FragmentManagerImpl.execPendingActions (FragmentManager.java:2062) at android.app.FragmentManagerImpl$1.run (FragmentManager.java:738) at android.os.Handler.handleCallback (Handler.java:873) at android.os.Handler.dispatchMessage (Handler.java:99) at android.os.Looper.loop (Looper.java:193) at android.app.ActivityThread.main (ActivityThread.java:6863) at java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:537) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:858)

Can you please share a solution to this one without upgrading the sdk because v10.01 is what we found to be the most stable.

Hi, There seems to be another issue with version v10.01. When i save the game the SavedGameWritten callback is not triggered.

I finally managed to reproduce this one. A fix is on its way. The second one on this comment looks to be the same issue.

Hi We are using v10.01 in our production release and this is the crash we are getting from users.

Do you have a logcat or more detailed logs for this one?

Do you have a logcat or more detailed logs for this one?

Unfortunately this is what we are getting on Play Console and these are the screenshots.
Annotation 2019-09-11 211635

java.lang.Error
in com.google.android.gms.common.api.internal.zza.onCreate

Annotation 2019-09-11 211635

java.lang.Error
in com.google.games.bridge.SignInRequest.signIn

Annotation 2019-09-11 211635

java.lang.Error
in com.google.games.bridge.SignInRequest.setFailure

Annotation 2019-09-11 211635

java.lang.Error
in com.google.games.bridge.SignInRequest.setSuccess

Annotation 2019-09-11 211635

Hi, I am using 10.03 above. I think you have an issue with getting the application ID through to Google. When I call PlayGamesPlatform.Activate(); without initializing, so it used the default one, a center dialog while screen dimmed appear as usual and I was asked to choose an account. However, after that there would be no drop down confirmation appearing, and in the adb logcat I would always get this :

2019/09/03 19:30:19.482 3034 3586 Warn PlayerAgent: {"code":400,"errors":[{"reason":"invalid","domain":"global","message":"Invalid applicationId with value . Reason: No application ids specified."}]}
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: onSignInFailed()...
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: Sign in failed during 8
2019/09/03 19:30:19.486 9055 9055 Warn SignInActivity: ==> Returning non-OK result: 10002

Screenshot_20190903-193210
Screenshot_20190903-193215

with value . kind of hinting that it may be parsed as empty string or something. I pressed setup already and my APP ID is already here. Is it being used at all at runtime? (also you forgot to change .02 to .03)

Annotation 2019-09-03 191832

The build method is Android App Bundle, and this test is from Internal Testing, not from direct install from AAB, so the signing key should be correct, like the one real player use.

@5argon Are you still having the same issues? I tried a couple of things in the meanwhile and when app id is misconfigured / missing, we get an error before Sign in failed during 8. As @cyraid suggested, I checked out logs on server side, but logs related to sign in look pretty stable. We don't have a big issue about it right now. Did you recently make any changes in Developer Console?

Also, if someone else is having the same issue, let us know so that we may have a better understanding of it.

@ozdemir08 So I didn't really open Unity, but I did use Android Studio and logcat, and decided to boot up the game and check the logs..

Apparently it mentioned it couldn't sign in with auth, and gave me a nice little print out of the SHA1 and such so I can double check. Apparently Google Cloud credentials had the other SHA1 still in there (from the internal test certificate), so I copied the one listed in the error.

Sorry for the trouble.

@cyraid no worries, glad that it works fine now.

@makmatics have you managed to reproduce them? Also, I'm wondering how often these crashes are happening. Do you have any numbers or anything meaningful about it on Console?

I suspect some weird behaviors could be happening if you transition to another app when sign in dialog pops up but could not reproduce a similar issue yet.

No one else getting this error after upgrade? The error occurs when I'm trying to start a real time multiplayer game. I guess it's a new bug in GPGS, or do I need to make my code thread safe? It worked before I upgraded from v. 0.9.54 to 0.10.03.

E/Unity   ( 4909): UnityException: set_enabled can only be called from the main thread.
E/Unity   ( 4909): Constructors and field initializers will be executed from the loading thread when loading a scene.
E/Unity   ( 4909): Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
E/Unity   ( 4909):
E/Unity   ( 4909): Rethrow as TargetInvocationException: GooglePlayGames.Android.AndroidRealTimeMultiplayerClient+RoomUpdateCallbackProxy.onRoomCreated(System.Int32,UnityEngine.AndroidJavaObject)
E/Unity   ( 4909):   at UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   ( 4909):   at UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, UnityEngine.AndroidJavaObject[] javaArgs) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   ( 4909):   at UnityEngine._AndroidJNIHelper.InvokeJavaProxyMethod (UnityEngine.AndroidJavaProxy proxy, System.IntPtr jmethodName, System.IntPtr jargs) [0x00000] in <00000000000000000000000000000000>:0

No one else getting this error after upgrade? The error occurs when I'm trying to start a real time multiplayer game. I guess it's a new bug in GPGS, or do I need to make my code thread safe? It worked before I upgraded from v. 0.9.54 to 0.10.03.

Your code should stay as it is, it's probably a new bug. By adding a Debug.Log("log_text") just before this line, can you check if it's the reason of this error?

Edit: @eirikost also can you verify if everything about sign in is fine so far?

@ozdemir08 Yea, it seems like that line is where the problem occurs. Should I check anything else? Sign in works like a charm 👌

@eirikost No, not now. A small change on RealTimeMultiplayerListener will probably solve the issue. I'll do it today and let you know to try it out.

EDIT: Can you try this and let me know if it works fine? You can either use the package or just replace your AndroidRealTimeMultiplayerClient.cs with the one there.

EDIT 2: Check out the announcement of Ending support for multiplayer APIs in Play Games Services

Having the same issue for the past one week. We have updated from Unity Google Play Games version V0.9.64 to V10.03. Can you please solve ASAP.
Screen Shot 2019-09-18 at 7 19 07 PM

Same issue reported here, too. I am looking into it but haven't found anything suspicious yet. Have you managed to reproduce it yourself?

@ozdemir08 Yea, thanks, the fix helped and I can start the game, but still getting some errors though. Seems like there's a problem getting the participantId. I don't know if it matters now that the multiplayer api support soon will be gone but I've added the errors below.

What will you guys do with your multiplayer games without the multiplayer api support? Switch to Unity Connected Games?

E/Unity   (23459): NullReferenceException: Object reference not set to an instance of an object.
E/Unity   (23459):   at MultiplayerController.OnRoomConnected (System.Boolean success) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at GooglePlayGames.Android.AndroidRealTimeMultiplayerClient+OnGameThreadForwardingListener+<>c__DisplayClass3_0.<OnRoomConnected>b__0 () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at System.Action.Invoke () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at GooglePlayGames.OurUtils.PlayGamesHelperObject.Update () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):
E/Unity   (23459): (Filename: currently not available on il2cpp Line: -1)
E/Unity   (23459):
E/Unity   (23459): NullReferenceException: Object reference not set to an instance of an object.
E/Unity   (23459):   at GooglePlayGames.Android.AndroidRealTimeMultiplayerClient.GetSelf () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at MultiplayerController.GetMyParticipantId (System.Int32 mode) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at GameController.SetupMultiplayerGame () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at GameController.Start () [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):
E/Unity   (23459): (Filename: currently not available on il2cpp Line: -1)

The same main thread problem as earlier, but now with nearby connections:

E/Unity   (23459): UnityException: set_enabled can only be called from the main thread.
E/Unity   (23459): Constructors and field initializers will be executed from the loading thread when loading a scene.
E/Unity   (23459): Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
E/Unity   (23459):
E/Unity   (23459): Rethrow as TargetInvocationException: GooglePlayGames.Android.AndroidNearbyConnectionClient+EndpointDiscoveryCallback.onEndpointFound(System.String,UnityEngine.AndroidJavaObject)
E/Unity   (23459):   at UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, System.Object[] args) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at UnityEngine.AndroidJavaProxy.Invoke (System.String methodName, UnityEngine.AndroidJavaObject[] javaArgs) [0x00000] in <00000000000000000000000000000000>:0
E/Unity   (23459):   at UnityEngine._AndroidJNIHelper.InvokeJavaProxyMethod (UnityEngine.AndroidJavaProxy proxy, System.IntPtr jmethodName, System.IntPtr jargs) [0x00000] in <00000000000000000000000000000000>:0

@eirikost thanks for reporting them. I'll still fix them as we have ~6 months to the given date.

EDIT:

What will you guys do with your multiplayer games without the multiplayer api support? Switch to Unity Connected Games?

If you want to discuss it, opening a new issue about it could be better. It will probably get lost among many comments in this thread.

@ozdemir08 We've updated the plugin as per your suggestion in my issue.

However, the game is now experiencing the same issue as @SankarGanesh82. We're not able to reproduce it unfortunately.
Here is our callstack:

at com.google.android.gms.common.internal.Preconditions.checkState (Unknown Source)
at com.google.android.gms.tasks.zzu.zzc (Unknown Source)
at com.google.android.gms.tasks.zzu.setResult (Unknown Source)
at com.google.android.gms.tasks.TaskCompletionSource.setResult (Unknown Source)
at com.google.games.bridge.SignInRequest.setSuccess (SignInRequest.java:242)
at com.google.games.bridge.SignInRequest.access$000 (SignInRequest.java:28)
at com.google.games.bridge.SignInRequest$1.onComplete (SignInRequest.java:117)
at com.google.android.gms.tasks.zzj.run (Unknown Source)
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:6776)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1496)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1386)

@NMeijerSparkling several people are having the same issue, but apparently nobody is able to reproduce it. We found something that might cause this, which you can see the fix here and I'll release a new version today. Hopefully it will solve this issue. Otherwise, we'll need to investigate it again.

Edit: You can check out v10.04 here. Please let us know how the crash numbers are changing with this version.

@ozdemir08, Thanks for your quick response. Will use this version and let you know the status soon.

Hello community I am developing a game in real time and I get this error I don't know why:

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
2019-09-21 17: 44: 28.043 534-563 /? W / Unity: Android JNI Helper: converting Byte array is obsolete, use SByte array instead
UnityEngine._AndroidJNIHelper: ConvertToJNIArray (Array)
UnityEngine._AndroidJNIHelper: CreateJNIArgArray (Object [])
UnityEngine.AndroidJavaObject: _Call (String, Object [])
GooglePlayGames.Android.AndroidRealTimeMultiplayerClient: SendMessageToAll (Boolean, Byte [])
NET_Game: Update ()

Thanks you.

Hello community I am developing a game in real time and I get this error I don't know why:

(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
2019-09-21 17: 44: 28.043 534-563 /? W / Unity: Android JNI Helper: converting Byte array is obsolete, use SByte array instead
UnityEngine._AndroidJNIHelper: ConvertToJNIArray (Array)
UnityEngine._AndroidJNIHelper: CreateJNIArgArray (Object [])
UnityEngine.AndroidJavaObject: _Call (String, Object [])
GooglePlayGames.Android.AndroidRealTimeMultiplayerClient: SendMessageToAll (Boolean, Byte [])
NET_Game: Update ()

Thanks you.

Thanks for reporting this. @eirikost also reported some bugs about real time api which I haven't addressed yet. I'm planning to look into them and fix them this(or next) week. But please be sure that you have read the deprecation announcement.

After updating to v10.04 we are getting crash in few deviecs(RedMi Note 4, one plus 5T) after successful login. App crashes even without performing any action after a while. Please see below log

--------- beginning of crash
09-24 15:12:18.563 15463 15593 F libc : Fatal signal 5 (SIGTRAP), code 1 in tid 15593 (Chrome_InProcRe)
09-24 15:12:18.570 455 455 W : debuggerd: handling request: pid=15463 uid=11801 gid=11801 tid=15593
09-24 15:12:18.632 16127 16127 W debuggerd64: type=1400 audit(0.0:4146): avc: denied { search } for name="com.google.android.gms" dev="dm-1" ino=790102 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-24 15:12:18.632 16127 16127 W debuggerd64: type=1400 audit(0.0:4147): avc: denied { search } for name="com.google.android.gms" dev="dm-1" ino=790102 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-24 15:12:18.642 16127 16127 W debuggerd64: type=1400 audit(0.0:4148): avc: denied { search } for name=“com.xxxx.xxx” dev="dm-1" ino=195479 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-24 15:12:18.642 16127 16127 W debuggerd64: type=1400 audit(0.0:4149): avc: denied { search } for name="com.xxxx.xxx” dev="dm-1" ino=195479 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-24 15:12:18.642 16127 16127 W debuggerd64: type=1400 audit(0.0:4150): avc: denied { search } for name="com.xxxx.xxx” dev="dm-1" ino=195479 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0
09-24 15:12:18.731 16127 16127 F DEBUG : * *
09-24 15:12:18.731 16127 16127 F DEBUG : Build fingerprint: 'xiaomi/mido/mido:7.0/NRD90M/V9.5.10.0.NCFMIFA:user/release-keys'
09-24 15:12:18.731 16127 16127 F DEBUG : Revision: '0'
09-24 15:12:18.731 16127 16127 F DEBUG : ABI: 'arm64'
09-24 15:12:18.732 16127 16127 F DEBUG : pid: 15463, tid: 15593, name: Chrome_InProcRe >>> com.xxxx.xxx <<<
09-24 15:12:18.732 16127 16127 F DEBUG : signal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7f6f36a558
09-24 15:12:18.732 16127 16127 F DEBUG : x0 0000007f53075a00 x1 0000007f847dcbcc x2 0000000000000001 x3 0000000000000003
09-24 15:12:18.732 16127 16127 F DEBUG : x4 0000000000000000 x5 0080000000000000 x6 0000007f872b6000 x7 0000000000000000
09-24 15:12:18.732 16127 16127 F DEBUG : x8 000000000000005d x9 0000000000000001 x10 0000000000000001 x11 0000000000000310
09-24 15:12:18.732 16127 16127 F DEBUG : x12 0000000000000018 x13 0000000000000000 x14 0000000000000000 x15 002084ac9a410913
09-24 15:12:18.732 16127 16127 F DEBUG : x16 0000007f6ff54428 x17 0000007f847dd868 x18 0000000000015180 x19 0000007f5308fe40
09-24 15:12:18.732 16127 16127 F DEBUG : x20 0000000000000001 x21 0000007f5308fe40 x22 0000007f492d7b2c x23 0000007f492d7928
09-24 15:12:18.732 16127 16127 F DEBUG : x24 0000007f492d3280 x25 0000000000000000 x26 0000007f54d8bcc0 x27 000000002c700000
09-24 15:12:18.733 16127 16127 F DEBUG : x28 00000000000ffd90 x29 0000007f492d3240 x30 0000007f6f36a54c
09-24 15:12:18.733 16127 16127 F DEBUG : sp 0000007f492d3230 pc 0000007f6f36a558 pstate 0000000060000000
09-24 15:12:18.740 16127 16127 F DEBUG :
09-24 15:12:18.740 16127 16127 F DEBUG : backtrace:
09-24 15:12:18.742 16127 16127 F DEBUG : #00 pc 0000000002d7a558 /data/app/com.android.chrome-2/base.apk (offset 0xc1b000)
09-24 15:12:18.742 16127 16127 F DEBUG : #01 pc 0000000002d7a548 /data/app/com.android.chrome-2/base.apk (offset 0xc1b000)
09-24 15:12:19.196 7746 7767 W LocalConnector: Cannot connect the wmserver-data-reciever-86111
09-24 15:12:19.196 7746 7767 W LocalConnector: java.io.IOException: Connection refused
09-24 15:12:19.196 7746 7767 W LocalConnector: at android.net.LocalSocketImpl.connectLocal(Native Method)
09-24 15:12:19.196 7746 7767 W LocalConnector: at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:292)
09-24 15:12:19.196 7746 7767 W LocalConnector: at android.net.LocalSocket.connect(LocalSocket.java:131)
09-24 15:12:19.196 7746 7767 W LocalConnector: at com.miui.wmsvc.b.b.a$a.run(Unknown Source)
09-24 15:12:19.196 7746 7767 W LocalConnector: at java.lang.Thread.run(Thread.java:760)

There's a lot of code compile warnings being generated by the C# code in this package, this makes it incompatible with projects where WarningsAsErrors as been enabled (which is fairly common in large scale production games). This should be remedied asap to avoid users of this plugin needing to modify the code to suit their project and therefore making upgrading harder later on as modifications will need re applying.

v0.10.3

@ozdemir08 v10.04 fixed our crashes, thanks! However, since we've started using GPGS v10 we've seen a significant increase in ANRs.

Here is our stacktrace:

  at com.unity3d.player.ReflectionHelper.nativeProxyInvoke (Native method)
  at com.unity3d.player.ReflectionHelper.a (unavailable)
  at com.unity3d.player.ReflectionHelper$1.invoke (unavailable)
  at java.lang.reflect.Proxy.invoke (Proxy.java:1006)
  at com.google.android.gms.tasks.OnSuccessListener.onSuccess (unavailable)
  at com.google.android.gms.tasks.zzn.run (unavailable:4)
- locked <0x0a3b6811> (a java.lang.Object)
  at android.os.Handler.handleCallback (Handler.java:873)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:214)
  at android.app.ActivityThread.main (ActivityThread.java:7156)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:975)

In AndroidSavedGamedClient we call OpenWithAutomaticConflictResolution which then calls InternalOpen. This in turn calls AddOnSuccessListener on AndroidTaskUtils. We suspect this is the issue as it matches com.google.android.gms.tasks.OnSuccessListener.onSuccess in the callstack and this issue started after updating to v10. No other changes have been made in the game in that update.

Will leaderboard score retrieval be improved? The documentation even currently lies about its abilities. For example, it says you can specify the rank to start retrieving scores at, however, it ALWAYS starts from the first rank and completely ignores the specified Range if one is provided.
https://github.com/playgameservices/play-games-plugin-for-unity#accessing-leaderboard-data

The rank position to start retrieving scores.

Lies! ^

In AndroidSavedGamedClient we call OpenWithAutomaticConflictResolution which then calls InternalOpen. This in turn calls AddOnSuccessListener on AndroidTaskUtils. We suspect this is the issue as it matches com.google.android.gms.tasks.OnSuccessListener.onSuccess in the callstack and this issue started after updating to v10. No other changes have been made in the game in that update.

Glad that v10.04 fixed your crashes! Also, thanks for reporting this, I'll look into it.

Will leaderboard score retrieval be improved? The documentation even currently lies about its abilities. For example, it says you can specify the rank to start retrieving scores at, however, it ALWAYS starts from the first rank and completely ignores the specified Range if one is provided.

If it's not ONLY about v10, please create another issue for this. If it's about v10, then let me know.

@ozdemir08 V10.04 fixed our crashes. Thank you for your support.

@ozdemir08 V10.04 fixed our crashes. Thank you for your support.

Great to hear, thanks for the feedbacks!

Will leaderboard score retrieval be improved? The documentation even currently lies about its abilities. For example, it says you can specify the rank to start retrieving scores at, however, it ALWAYS starts from the first rank and completely ignores the specified Range if one is provided.

If it's not ONLY about v10, please create another issue for this. If it's about v10, then let me know.

It's not only about v10 but in all versions. Very critical error! Please fix it ASAP. :)

In AndroidSavedGamedClient we call OpenWithAutomaticConflictResolution which then calls InternalOpen. This in turn calls AddOnSuccessListener on AndroidTaskUtils. We suspect this is the issue as it matches com.google.android.gms.tasks.OnSuccessListener.onSuccess in the callstack and this issue started after updating to v10. No other changes have been made in the game in that update.

Glad that v10.04 fixed your crashes! Also, thanks for reporting this, I'll look into it.

Thank you! Have you had a chance to look into it? Our ANR percentage is now at 6% because of this, which is far above the bad behaviour threshold so for us this is very urgent.

In AndroidSavedGamedClient we call OpenWithAutomaticConflictResolution which then calls InternalOpen. This in turn calls AddOnSuccessListener on AndroidTaskUtils. We suspect this is the issue as it matches com.google.android.gms.tasks.OnSuccessListener.onSuccess in the callstack and this issue started after updating to v10. No other changes have been made in the game in that update.

Glad that v10.04 fixed your crashes! Also, thanks for reporting this, I'll look into it.

Thank you! Have you had a chance to look into it? Our ANR percentage is now at 6% because of this, which is far above the bad behaviour threshold so for us this is very urgent.

I have had a look into it, but could not find anything critical yet. I'll keep investigating. I'm wondering if you have a better reasoning to associate this stack trace with InternalOpen method of AndroidSavedGameClient. Because we're using AddOnSuccessListener in more than 40 places and looking at that stack trace, I could not directly associate them.

Also, your app is apparently released. Can you share it with me so that I can install it and hopefully face with the same issue?

@ozdemir08 We're pretty sure this is where it's from because we only use the cloud save features from the plugin. We also don't use the conflict resolver. Our game only pulls the first time they start the game. This is because the feature is implemented as a recovery method, not consistent cloud save. This made us think it might be the cloud save push.

We've had to remove the plugin from our game for now to stop the ANRs. However, I can send you the APK we used for that release. Do you have an e-mail adress I can send it to?

Thanks for looking into this!

Thanks for the plugin. I am trying to use this in my game to determine whether cloud save will work for me. I believe I am missing a step or entire concept somewhere, though. From what I can tell so far, authentication (which is necessary to save) won't succeed until you've uploaded a signed app to Play, and in order to get it from there, you have to actually release it (which requires approval by Google and creating icons, graphics, etc. etc.).

Is there any way to just "sandbox" test cloud save, leaderboards, events, etc. without actually publishing the entire app, or is the only way to test the features to actually get the thing fully submitted and available to myself as a tester through Play Store?

Thanks in advance!

Thanks for the plugin. I am trying to use this in my game to determine whether cloud save will work for me. I believe I am missing a step or entire concept somewhere, though. From what I can tell so far, authentication (which is necessary to save) won't succeed until you've uploaded a signed app to Play, and in order to get it from there, you have to actually release it (which requires approval by Google and creating icons, graphics, etc. etc.).

Is there any way to just "sandbox" test cloud save, leaderboards, events, etc. without actually publishing the entire app, or is the only way to test the features to actually get the thing fully submitted and available to myself as a tester through Play Store?

Thanks in advance!

Hi Justindz! Just publish it as an internal test so you can be the only one to test your app. Once it is published as an internal test, it must be approved by Google but it will not be publicly available. Once it has been approved by Google, you can associate your app to Google Play Services. I advise you to associate 2 apps : the one that is published on Google Play (with App signing key, automatically filled when you associate the app) and another "DEV" or "TEST" (with Upload signing key!, see app signing section in Google Play console) so you can test on your own without waiting for Google Play app review.

I don't know another way but if someone know a "sandbox" way that don't need to submit the game on Google Play I'm listening. Justindz, if you want to test at a very early stage of development, maybe you can submit the app as is and then immediately contact Google Play Developer support to tell them what you want to do (test Google Play Services before implementing any other feature).

Thanks for the plugin. I am trying to use this in my game to determine whether cloud save will work for me. I believe I am missing a step or entire concept somewhere, though. From what I can tell so far, authentication (which is necessary to save) won't succeed until you've uploaded a signed app to Play, and in order to get it from there, you have to actually release it (which requires approval by Google and creating icons, graphics, etc. etc.).
Is there any way to just "sandbox" test cloud save, leaderboards, events, etc. without actually publishing the entire app, or is the only way to test the features to actually get the thing fully submitted and available to myself as a tester through Play Store?
Thanks in advance!

Hi Justindz! Just publish it as an internal test so you can be the only one to test your app. Once it is published as an internal test, it must be approved by Google but it will not be publicly available. Once it has been approved by Google, you can associate your app to Google Play Services. I advise you to associate 2 apps : the one that is published on Google Play (with App signing key, automatically filled when you associate the app) and another "DEV" or "TEST" (with Upload signing key!, see app signing section in Google Play console) so you can test on your own without waiting for Google Play app review.

I don't know another way but if someone know a "sandbox" way that don't need to submit the game on Google Play I'm listening. Justindz, if you want to test at a very early stage of development, maybe you can submit the app as is and then immediately contact Google Play Developer support to tell them what you want to do (test Google Play Services before implementing any other feature).

Thanks for your assistance. I got my internal test approved finally, so I was able to load it to the device using Play Store as a tester. Despite my logged in account on my test phone being the same account as the internal tester, I still get a failure to authenticate using this tool. Here is what I can see in the debug logs from the test device:

2019-10-17 18:53:49.485 22987-22987/? W/SignInActivity: onSignInFailed()...
2019-10-17 18:53:49.485 22987-22987/? W/SignInActivity: Sign in failed during 6
2019-10-17 18:53:49.485 22987-22987/? W/SignInActivity: ==> Returning non-OK result: 10002
2019-10-17 18:53:49.493 16097-16115/? W/GamesServiceBroker: Client connected with SDK 19525000, Services 19420046, and Games 132050048
2019-10-17 18:53:49.513 22949-22949/? W/AutoManageHelper: Unresolved error while connecting client. Stopping auto-manage.
2019-10-17 18:53:49.540 2510-2510/? I/Elmyra/ElmyraService: Gated by NavigationBarVisibility [mIsNavigationHidden -> true; mExceptions -> [DismissTimer [mReceiverRegistered -> true], SnoozeAlarm [mReceiverRegistered -> true], SilenceCall [mSilenceSettingEnabled -> true], SettingsAction]]
2019-10-17 18:53:49.540 828-828/? V/ContextHubHal: sendMessageToHub
2019-10-17 18:53:49.541 923-957/? D/CHRE: @ 6726.213: Parsed nanoapp message from host: app ID 0x476f6f676c00100e, endpoint 0x1, msgType 201, payload size 0
2019-10-17 18:53:49.546 25706-25706/? E/SignInRequest: Setting result error status code to: 16

Is there any documentation on what "failed during 6" and error status code 16 indicate?

ANR that occurred in v10.05.
Unity 2019.2.10f1

Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 32. Wait queue head age: 5519.3ms.)
com.unity3d.player.UnityPlayerActivity

어제, 오전 9:03 앱 버전 230에서 발생
Multilaser M7SQC_ Plus(ML-JI22-M7SQC_Plus), Android 8.1
보고서 1/1

모두 접기
"main" tid=1 Runnable
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 flags=0 obj=0x7134b5f0 self=0x785da5aa00
| sysTid=14195 nice=-10 cgrp=default sched=0/0 handle=0x78e25a49a8
| state=R schedstat=( 1373744400 310027597 4101 ) utm=78 stm=58 core=1 HZ=100
| stack=0x7feba93000-0x7feba95000 stackSize=8MB
| held mutexes= "mutator lock"(shared held)
#00 pc 00000000003c951c /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream>&, int, BacktraceMap, char const, art::ArtMethod, void)+208)
#01 pc 000000000049970c /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream>&, bool, BacktraceMap, bool) const+348)
#02 pc 00000000004b1298 /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread
)+884)
#03 pc 000000000049a5b4 /system/lib64/libart.so (art::Thread::RunCheckpointFunction()+412)
#04 pc 0000000000520ce0 /system/lib64/libart.so (art::JniMethodFastEndWithReference(_jobject, unsigned int, art::Thread)+68)
#05 pc 000000000000905c /system/framework/arm64/boot.oat (Java_java_lang_Throwable_nativeGetStackTrace__Ljava_lang_Object_2+188)
at java.lang.Throwable.nativeGetStackTrace (Native method)
at java.lang.Throwable.getOurStackTrace (Throwable.java:820)

  • locked <0x0549f44e> (a android.os.DeadObjectException)
    at java.lang.Throwable.printStackTrace (Throwable.java:649)
  • locked <0x062d27b2> (a com.android.internal.util.LineBreakBufferedWriter)
    at java.lang.Throwable.printStackTrace (Throwable.java:713)
    at android.util.Log.printlns (Log.java:422)
    at android.util.Log.w (Log.java:198)
    at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService (unavailable:248)
    at com.google.android.gms.common.internal.BaseGmsClient$LegacyClientCallbackAdapter.onReportServiceBinding (unavailable:3)
    at com.google.android.gms.common.internal.BaseGmsClient$zzg.zzm (unavailable:10)
    at com.google.android.gms.common.internal.BaseGmsClient$zza.zza (unavailable:12)
    at com.google.android.gms.common.internal.BaseGmsClient$zzc.zzo (unavailable:11)
    at com.google.android.gms.common.internal.BaseGmsClient$zzb.handleMessage (unavailable:49)
    at android.os.Handler.dispatchMessage (Handler.java:106)
    at com.google.android.gms.internal.common.zze.dispatchMessage (unavailable:8)
    at android.os.Looper.loop (Looper.java:164)
    at android.app.ActivityThread.main (ActivityThread.java:6494)
    at java.lang.reflect.Method.invoke (Native method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
    "Jit thread pool worker thread 0" tid=2 Native
    "Jit thread pool worker thread 0" daemon prio=5 tid=2 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f03170 self=0x785da5b400
    | sysTid=14200 nice=9 cgrp=default sched=0/0 handle=0x785630b4f0
    | state=S schedstat=( 205245615 187585419 143 ) utm=16 stm=3 core=2 HZ=100
    | stack=0x785620d000-0x785620f000 stackSize=1021KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    #01 pc 00000000000e661c /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread)+152)
    #02 pc 00000000004b2a40 /system/lib64/libart.so (art::ThreadPool::GetTask(art::Thread
    )+256)
    #03 pc 00000000004b2138 /system/lib64/libart.so (art::ThreadPoolWorker::Run()+124)
    #04 pc 00000000004b1c0c /system/lib64/libart.so (art::ThreadPoolWorker::Callback(void)+148)
    #05 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void
    )+36)
    #06 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "ReferenceQueueDaemon" tid=4 Waiting
    "ReferenceQueueDaemon" daemon prio=5 tid=4 Waiting
    | group="system" sCount=1 dsCount=0 flags=1 obj=0x12f003a8 self=0x785da5c800
    | sysTid=14202 nice=4 cgrp=default sched=0/0 handle=0x78492844f0
    | state=S schedstat=( 3857496 3256083 22 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x7849182000-0x7849184000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x0f98a767> (a java.lang.Class)
    at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:178)
  • locked <0x0f98a767> (a java.lang.Class)
    at java.lang.Daemons$Daemon.run (Daemons.java:103)
    at java.lang.Thread.run (Thread.java:764)
    "FinalizerDaemon" tid=5 Waiting
    "FinalizerDaemon" daemon prio=5 tid=5 Waiting
    | group="system" sCount=1 dsCount=0 flags=1 obj=0x12f00848 self=0x785da5d200
    | sysTid=14203 nice=4 cgrp=default sched=0/0 handle=0x784917f4f0
    | state=S schedstat=( 6961624 5465669 24 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x784907d000-0x784907f000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x07aad914> (a java.lang.Object)
    at java.lang.Object.wait (Object.java:422)
    at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:188)
  • locked <0x07aad914> (a java.lang.Object)
    at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:209)
    at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:232)
    at java.lang.Daemons$Daemon.run (Daemons.java:103)
    at java.lang.Thread.run (Thread.java:764)
    "FinalizerWatchdogDaemon" tid=6 Waiting
    "FinalizerWatchdogDaemon" daemon prio=5 tid=6 Waiting
    | group="system" sCount=1 dsCount=0 flags=1 obj=0x12f008d0 self=0x785daf9600
    | sysTid=14204 nice=4 cgrp=default sched=0/0 handle=0x784907a4f0
    | state=S schedstat=( 867582 3961999 14 ) utm=0 stm=0 core=1 HZ=100
    | stack=0x7848f78000-0x7848f7a000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x0b5ab5bd> (a java.lang.Daemons$FinalizerWatchdogDaemon)
    at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded (Daemons.java:297)
  • locked <0x0b5ab5bd> (a java.lang.Daemons$FinalizerWatchdogDaemon)
    at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:277)
    at java.lang.Daemons$Daemon.run (Daemons.java:103)
    at java.lang.Thread.run (Thread.java:764)
    "Binder:14195_1" tid=8 Native
    "Binder:14195_1" prio=5 tid=8 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f00960 self=0x7853686a00
    | sysTid=14206 nice=0 cgrp=default sched=0/0 handle=0x7848d724f0
    | state=S schedstat=( 3022123 3167833 26 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x7848c78000-0x7848c7a000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069d98 /system/lib64/libc.so (__ioctl+4)
    #01 pc 0000000000023fa0 /system/lib64/libc.so (ioctl+136)
    #02 pc 0000000000054950 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+256)
    #03 pc 0000000000054abc /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
    #04 pc 0000000000055178 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
    #05 pc 0000000000076200 /system/lib64/libbinder.so (???)
    #06 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void)+280)
    #07 pc 00000000000a9860 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void
    )+140)
    #08 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void)+36)
    #09 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Binder:14195_2" tid=9 Native
    "Binder:14195_2" prio=5 tid=9 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f00a18 self=0x7853687400
    | sysTid=14207 nice=0 cgrp=default sched=0/0 handle=0x7848c754f0
    | state=S schedstat=( 18192831 35693629 74 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x7848b7b000-0x7848b7d000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069d98 /system/lib64/libc.so (__ioctl+4)
    #01 pc 0000000000023fa0 /system/lib64/libc.so (ioctl+136)
    #02 pc 0000000000054950 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+256)
    #03 pc 0000000000054abc /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
    #04 pc 0000000000055178 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
    #05 pc 0000000000076200 /system/lib64/libbinder.so (???)
    #06 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void
    )+280)
    #07 pc 00000000000a9860 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void)+140)
    #08 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void
    )+36)
    #09 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Profile Saver" tid=10 Native
    "Profile Saver" daemon prio=5 tid=10 Native
    | group="system" sCount=1 dsCount=0 flags=1 obj=0x12f00aa0 self=0x7853687e00
    | sysTid=14240 nice=9 cgrp=default sched=0/0 handle=0x7847fd54f0
    | state=S schedstat=( 17052624 12059501 24 ) utm=1 stm=0 core=1 HZ=100
    | stack=0x7847edb000-0x7847edd000 stackSize=1005KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    #01 pc 00000000000e661c /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread)+152)
    #02 pc 00000000003346d0 /system/lib64/libart.so (art::ProfileSaver::Run()+360)
    #03 pc 0000000000337238 /system/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread(void
    )+92)
    #04 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void)+36)
    #05 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Measurement Worker" tid=11 Native
    "Measurement Worker" prio=5 tid=11 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13784ca8 self=0x7853688800
    | sysTid=14427 nice=10 cgrp=default sched=0/0 handle=0x7847e584f0
    | state=S schedstat=( 316144793 194066953 303 ) utm=27 stm=3 core=3 HZ=100
    | stack=0x7847d56000-0x7847d58000 stackSize=1037KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    #01 pc 00000000000e661c /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread
    )+152)
    #02 pc 0000000000520904 /system/lib64/libart.so (art::GoToRunnable(art::Thread)+440)
    #03 pc 0000000000520704 /system/lib64/libart.so (art::JniMethodEnd(unsigned int, art::Thread
    )+28)
    #04 pc 000000000004b7b8 /system/framework/arm64/boot.oat (Java_java_io_UnixFileSystem_checkAccess0__Ljava_io_File_2I+184)
    at java.io.UnixFileSystem.checkAccess0 (Native method)
    at java.io.UnixFileSystem.checkAccess (UnixFileSystem.java:252)
    at java.io.File.exists (File.java:807)
    at android.app.ContextImpl.ensurePrivateDirExists (ContextImpl.java:572)
    at android.app.ContextImpl.ensurePrivateDirExists (ContextImpl.java:563)
    at android.app.ContextImpl.getDatabasesDir (ContextImpl.java:802)
  • locked <0x06cd1f7b> (a java.lang.Object)
    at android.app.ContextImpl.getDatabasePath (ContextImpl.java:781)
    at android.content.ContextWrapper.getDatabasePath (ContextWrapper.java:320)
    at hx.s (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):87)
    at hx.p (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):92)
    at kh.a (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):17)
    at ku.run (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):8)
    at kh.y (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):265)
    at kh.a (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):216)
    at lb.run (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):8)
  • locked <0x09101198> (a la)
    at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457)
    at java.util.concurrent.FutureTask.run (FutureTask.java:266)
    at ip.run (com.google.android.gms.dynamite_measurementdynamite@[email protected] (110400-271418971):13)
    "queued-work-looper" tid=12 Native
    "queued-work-looper" prio=5 tid=12 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f00b28 self=0x7853689c00
    | sysTid=14247 nice=-2 cgrp=default sched=0/0 handle=0x7847c4e4f0
    | state=D schedstat=( 81129377 66103084 217 ) utm=1 stm=6 core=0 HZ=100
    | stack=0x7847b4c000-0x7847b4e000 stackSize=1037KB
    | held mutexes=
    #00 pc 000000000006a264 /system/lib64/libc.so (fsync+8)
    #01 pc 00000000000036a0 /system/lib64/libopenjdkjvm.so (JVM_Sync+20)
    #02 pc 000000000001d598 /system/lib64/libopenjdk.so (FileDescriptor_sync+40)
    #03 pc 0000000000020d3c /system/framework/arm64/boot.oat (Java_java_io_FileDescriptor_sync__+124)
    at java.io.FileDescriptor.sync (Native method)
    at android.os.FileUtils.sync (FileUtils.java:180)
    at android.app.SharedPreferencesImpl.writeToFile (SharedPreferencesImpl.java:734)
    at android.app.SharedPreferencesImpl.-wrap2 (SharedPreferencesImpl.java)
    at android.app.SharedPreferencesImpl$2.run (SharedPreferencesImpl.java:599)
  • locked <0x0001f0b9> (a java.lang.Object)
    at android.app.QueuedWork.processPendingWork (QueuedWork.java:258)
  • locked <0x00420cfe> (a java.lang.Object)
    at android.app.QueuedWork.-wrap0 (QueuedWork.java)
    at android.app.QueuedWork$QueuedWorkHandler.handleMessage (QueuedWork.java:278)
    at android.os.Handler.dispatchMessage (Handler.java:106)
    at android.os.Looper.loop (Looper.java:164)
    at android.os.HandlerThread.run (HandlerThread.java:65)
    "ThreadPoolForeg" tid=13 Native
    "ThreadPoolForeg" prio=5 tid=13 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341bf0 self=0x7853689200
    | sysTid=14598 nice=0 cgrp=default sched=0/0 handle=0x78404054f0
    | state=S schedstat=( 16339663 35311041 38 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x784030b000-0x784030d000 stackSize=1005KB
    | held mutexes=
    #00 pc 000000000001d7b0 /system/lib64/libc.so (syscall+32)
    #01 pc 0000000000066ea8 /system/lib64/libc.so (pthread_cond_timedwait+156)
    #02 pc 000000000073eea4 /data/app/com.android.chrome-v-XHSHUI-IW5wqDfNzZzrQ==/base.apk (???)
    "NetworkService" tid=14 Native
    "NetworkService" prio=5 tid=14 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x133419f8 self=0x785db08a00
    | sysTid=14588 nice=0 cgrp=default sched=0/0 handle=0x7840abc4f0
    | state=S schedstat=( 19123372 3219750 47 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x78409c2000-0x78409c4000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069cac /system/lib64/libc.so (__epoll_pwait+8)
    #01 pc 000000000001f58c /system/lib64/libc.so (epoll_pwait+52)
    #02 pc 000000000072f1ac /data/app/com.android.chrome-v-XHSHUI-IW5wqDfNzZzrQ==/base.apk (???)
    "pool-1-thread-1" tid=15 TimedWaiting
    "pool-1-thread-1" prio=5 tid=15 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13781458 self=0x785db08000
    | sysTid=14274 nice=0 cgrp=default sched=0/0 handle=0x784798c4f0
    | state=S schedstat=( 10686624 1406875 12 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x784788a000-0x784788c000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x06891c5f> (a java.lang.Object)
    at java.lang.Thread.parkFor$ (Thread.java:2137)
  • locked <0x06891c5f> (a java.lang.Object)
    at sun.misc.Unsafe.park (Unsafe.java:358)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "pool-3-thread-1" tid=16 Waiting
    "pool-3-thread-1" prio=5 tid=16 Waiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x137816c0 self=0x785db09400
    | sysTid=14277 nice=0 cgrp=default sched=0/0 handle=0x78478874f0
    | state=S schedstat=( 88764921 95363291 146 ) utm=6 stm=2 core=2 HZ=100
    | stack=0x7847785000-0x7847787000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x0f8036ac> (a java.lang.Object)
    at java.lang.Thread.parkFor$ (Thread.java:2137)
  • locked <0x0f8036ac> (a java.lang.Object)
    at sun.misc.Unsafe.park (Unsafe.java:358)
    at java.util.concurrent.locks.LockSupport.park (LockSupport.java:190)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2059)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1120)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "PlatformServiceBridgeHandlerThread" tid=17 Native
    "PlatformServiceBridgeHandlerThread" prio=5 tid=17 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341a80 self=0x785db09e00
    | sysTid=14603 nice=0 cgrp=default sched=0/0 handle=0x78477824f0
    | state=S schedstat=( 4075874 1011084 9 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x7847680000-0x7847682000 stackSize=1037KB
    | held mutexes=
    #00 pc 0000000000069cac /system/lib64/libc.so (__epoll_pwait+8)
    #01 pc 000000000001f58c /system/lib64/libc.so (epoll_pwait+52)
    #02 pc 0000000000015d08 /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
    #03 pc 0000000000015bf0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int, int, void**)+108)
    #04 pc 000000000010f17c /system/lib64/libandroid_runtime.so (???)
    #05 pc 00000000000e744c /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
    at android.os.MessageQueue.nativePollOnce (Native method)
    at android.os.MessageQueue.next (MessageQueue.java:325)
    at android.os.Looper.loop (Looper.java:142)
    at android.os.HandlerThread.run (HandlerThread.java:65)
    "Measurement Worker" tid=18 TimedWaiting
    "Measurement Worker" prio=5 tid=18 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13340268 self=0x785db0a800
    | sysTid=14543 nice=10 cgrp=default sched=0/0 handle=0x78451f54f0
    | state=S schedstat=( 204954880 103791579 199 ) utm=18 stm=1 core=2 HZ=100
    | stack=0x78450f3000-0x78450f5000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x04c3fdf1> (a java.lang.Object)
    at java.lang.Object.wait (Object.java:422)
    at com.google.android.gms.measurement.internal.zzfg.run (unavailable:24)
  • locked <0x04c3fdf1> (a java.lang.Object)
    "OkHttp ConnectionPool" tid=19 TimedWaiting
    "OkHttp ConnectionPool" daemon prio=5 tid=19 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13781ab8 self=0x785db0b200
    | sysTid=14303 nice=0 cgrp=default sched=0/0 handle=0x78475784f0
    | state=S schedstat=( 2094166 5609458 19 ) utm=0 stm=0 core=1 HZ=100
    | stack=0x7847476000-0x7847478000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x0f47df75> (a com.android.okhttp.ConnectionPool)
    at com.android.okhttp.ConnectionPool$1.run (ConnectionPool.java:101)
  • locked <0x0f47df75> (a com.android.okhttp.ConnectionPool)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "pool-4-thread-2" tid=20 TimedWaiting
    "pool-4-thread-2" prio=5 tid=20 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341c78 self=0x7853730600
    | sysTid=14675 nice=0 cgrp=default sched=0/0 handle=0x78450444f0
    | state=S schedstat=( 8478042 2257959 27 ) utm=0 stm=0 core=0 HZ=100
    | stack=0x7844f42000-0x7844f44000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x0838bdd6> (a java.lang.Object)
    at java.lang.Thread.parkFor$ (Thread.java:2137)
  • locked <0x0838bdd6> (a java.lang.Object)
    at sun.misc.Unsafe.park (Unsafe.java:358)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
    at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:467)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1086)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "pool-2-thread-1" tid=21 TimedWaiting
    "pool-2-thread-1" prio=5 tid=21 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13781bf0 self=0x785372c000
    | sysTid=14306 nice=0 cgrp=default sched=0/0 handle=0x7846ed24f0
    | state=S schedstat=( 12923334 34967707 36 ) utm=0 stm=0 core=1 HZ=100
    | stack=0x7846dd0000-0x7846dd2000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x012dfb0a> (a java.lang.Object)
    at java.lang.Thread.parkFor$ (Thread.java:2137)
  • locked <0x012dfb0a> (a java.lang.Object)
    at sun.misc.Unsafe.park (Unsafe.java:358)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1132)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1087)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "FMODAudioDevice" tid=22 Native
    "FMODAudioDevice" prio=10 tid=22 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12c812e8 self=0x7845511c00
    | sysTid=14695 nice=-8 cgrp=default sched=0/0 handle=0x78453ff4f0
    | state=S schedstat=( 106254545 16151459 321 ) utm=8 stm=1 core=0 HZ=100
    | stack=0x78452fd000-0x78452ff000 stackSize=1037KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    #01 pc 00000000000e661c /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread*)+152)
    #02 pc 000000000038a9e4 /system/lib64/libart.so (_ZN3art3JNI21ReleasePrimitiveArrayIP11_jbyteArrayaNS_6mirror14PrimitiveArrayIaEEEEvP7_JNIEnvT_PT0_i+480)
    #03 pc 000000000014b900 /system/lib64/libandroid_runtime.so (???)
    #04 pc 00000000002c4678 /system/framework/arm64/boot-framework.oat (Java_android_media_AudioTrack_native_1write_1byte___3BIIIZ+184)
    at android.media.AudioTrack.native_write_byte (Native method)
    at android.media.AudioTrack.write (AudioTrack.java:2188)
    at android.media.AudioTrack.write (AudioTrack.java:2125)
    at org.fmod.FMODAudioDevice.run (unavailable)
    at java.lang.Thread.run (Thread.java:764)
    "UnityMain" tid=23 Runnable
    "UnityMain" prio=5 tid=23 Runnable
    | group="main" sCount=0 dsCount=0 flags=0 obj=0x13781ee8 self=0x785372d400
    | sysTid=14313 nice=0 cgrp=default sched=0/0 handle=0x78452fa4f0
    | state=R schedstat=( 4778837044 827138135 2154 ) utm=406 stm=71 core=2 HZ=100
    | stack=0x78451f8000-0x78451fa000 stackSize=1037KB
    | held mutexes= "mutator lock"(shared held)
    at android.hardware.input.IInputManager$Stub$Proxy.getInputDevice (IInputManager.java:483)
    at android.hardware.input.InputManager.getInputDevice (InputManager.java:256)
  • locked <0x0b40f96f> (a java.lang.Object)
    at android.view.InputDevice.getDevice (InputDevice.java:463)
    at com.unity3d.player.UnityPlayer.nativeRender (Native method)
    at com.unity3d.player.UnityPlayer.c (unavailable)
    at com.unity3d.player.UnityPlayer$e$1.handleMessage (unavailable)
    at android.os.Handler.dispatchMessage (Handler.java:102)
    at android.os.Looper.loop (Looper.java:164)
    at com.unity3d.player.UnityPlayer$e.run (unavailable)
    "AudioTrack" tid=24 Native
    "AudioTrack" prio=10 tid=24 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12d40020 self=0x7844595a00
    | sysTid=14697 nice=-16 cgrp=default sched=0/0 handle=0x7844ea24f0
    | state=S schedstat=( 2766832 5399959 4 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x7844da8000-0x7844daa000 stackSize=1005KB
    | held mutexes=
    #00 pc 000000000001d7b0 /system/lib64/libc.so (syscall+32)
    #01 pc 0000000000066ea8 /system/lib64/libc.so (pthread_cond_timedwait+156)
    #02 pc 0000000000048114 /system/lib64/libaudioclient.so (android::AudioTrack::AudioTrackThread::threadLoop()+516)
    #03 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void)+280)
    #04 pc 00000000000a9860 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void
    )+140)
    #05 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void)+36)
    #06 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Binder:14195_3" tid=25 Native
    "Binder:14195_3" prio=5 tid=25 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13784c20 self=0x785372fc00
    | sysTid=14388 nice=0 cgrp=default sched=0/0 handle=0x78447e64f0
    | state=S schedstat=( 8442664 15711082 41 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x78446ec000-0x78446ee000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069d98 /system/lib64/libc.so (__ioctl+4)
    #01 pc 0000000000023fa0 /system/lib64/libc.so (ioctl+136)
    #02 pc 0000000000054950 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+256)
    #03 pc 0000000000054abc /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
    #04 pc 0000000000055178 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
    #05 pc 0000000000076200 /system/lib64/libbinder.so (???)
    #06 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void
    )+280)
    #07 pc 00000000000a9860 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void)+140)
    #08 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void
    )+36)
    #09 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Binder:14195_4" tid=26 Native
    "Binder:14195_4" prio=5 tid=26 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12ec0020 self=0x783652f600
    | sysTid=14815 nice=0 cgrp=default sched=0/0 handle=0x7840db34f0
    | state=S schedstat=( 3971798 20752997 21 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x7840cb9000-0x7840cbb000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069d98 /system/lib64/libc.so (__ioctl+4)
    #01 pc 0000000000023fa0 /system/lib64/libc.so (ioctl+136)
    #02 pc 0000000000054950 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver(bool)+256)
    #03 pc 0000000000054abc /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand()+24)
    #04 pc 0000000000055178 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool(bool)+60)
    #05 pc 0000000000076200 /system/lib64/libbinder.so (???)
    #06 pc 0000000000011460 /system/lib64/libutils.so (android::Thread::_threadLoop(void)+280)
    #07 pc 00000000000a9860 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void
    )+140)
    #08 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void)+36)
    #09 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "Chrome_IOThread" tid=27 Native
    "Chrome_IOThread" prio=7 tid=27 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x133418e8 self=0x7845510800
    | sysTid=14586 nice=-4 cgrp=default sched=0/0 handle=0x7840cb64f0
    | state=S schedstat=( 40784708 2042582 93 ) utm=3 stm=0 core=2 HZ=100
    | stack=0x7840bbc000-0x7840bbe000 stackSize=1005KB
    | held mutexes=
    #00 pc 0000000000069cac /system/lib64/libc.so (__epoll_pwait+8)
    #01 pc 000000000001f58c /system/lib64/libc.so (epoll_pwait+52)
    #02 pc 000000000072f1ac /data/app/com.android.chrome-v-XHSHUI-IW5wqDfNzZzrQ==/base.apk (???)
    "Chrome_ProcessLauncherThread" tid=28 Native
    "Chrome_ProcessLauncherThread" prio=5 tid=28 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341718 self=0x7845511200
    | sysTid=14550 nice=0 cgrp=default sched=0/0 handle=0x78417e14f0
    | state=S schedstat=( 11772917 15029292 12 ) utm=0 stm=0 core=0 HZ=100
    | stack=0x78416df000-0x78416e1000 stackSize=1037KB
    | held mutexes=
    #00 pc 0000000000069cac /system/lib64/libc.so (__epoll_pwait+8)
    #01 pc 000000000001f58c /system/lib64/libc.so (epoll_pwait+52)
    #02 pc 0000000000015d08 /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
    #03 pc 0000000000015bf0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int
    , int, void*)+108)
    #04 pc 000000000010f17c /system/lib64/libandroid_runtime.so (???)
    #05 pc 00000000000e744c /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
    at android.os.MessageQueue.nativePollOnce (Native method)
    at android.os.MessageQueue.next (MessageQueue.java:325)
    at android.os.Looper.loop (Looper.java:142)
    at android.os.HandlerThread.run (HandlerThread.java:65)
    "AsyncTask #4" tid=29 TimedWaiting
    "AsyncTask #4" prio=5 tid=29 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12e45500 self=0x7841a48e00
    | sysTid=14825 nice=0 cgrp=default sched=0/0 handle=0x7844a464f0
    | state=S schedstat=( 1576168 709167 15 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x7844944000-0x7844946000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x03843857> (a java.lang.Object)
    at java.lang.Thread.parkFor$ (Thread.java:2137)
  • locked <0x03843857> (a java.lang.Object)
    at sun.misc.Unsafe.park (Unsafe.java:358)
    at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:230)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2101)
    at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:467)
    at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1086)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1147)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "GoogleApiHandler" tid=30 Native
    "GoogleApiHandler" prio=5 tid=30 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341800 self=0x7845512600
    | sysTid=14568 nice=9 cgrp=default sched=0/0 handle=0x78415d74f0
    | state=S schedstat=( 26100962 12010749 47 ) utm=1 stm=0 core=3 HZ=100
    | stack=0x78414d5000-0x78414d7000 stackSize=1037KB
    | held mutexes=
    #00 pc 0000000000069cac /system/lib64/libc.so (__epoll_pwait+8)
    #01 pc 000000000001f58c /system/lib64/libc.so (epoll_pwait+52)
    #02 pc 0000000000015d08 /system/lib64/libutils.so (android::Looper::pollInner(int)+144)
    #03 pc 0000000000015bf0 /system/lib64/libutils.so (android::Looper::pollOnce(int, int, int, void**)+108)
    #04 pc 000000000010f17c /system/lib64/libandroid_runtime.so (???)
    #05 pc 00000000000e744c /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
    at android.os.MessageQueue.nativePollOnce (Native method)
    at android.os.MessageQueue.next (MessageQueue.java:325)
    at android.os.Looper.loop (Looper.java:142)
    at android.os.HandlerThread.run (HandlerThread.java:65)
    "Timer-1" tid=31 TimedWaiting
    "Timer-1" prio=5 tid=31 TimedWaiting
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x12f80290 self=0x7836da9000
    | sysTid=14826 nice=0 cgrp=default sched=0/0 handle=0x78449414f0
    | state=S schedstat=( 890708 21500 10 ) utm=0 stm=0 core=2 HZ=100
    | stack=0x784483f000-0x7844841000 stackSize=1037KB
    | held mutexes=
    at java.lang.Object.wait (Native method)
  • waiting on <0x02c0af44> (a java.util.TaskQueue)
    at java.lang.Object.wait (Object.java:422)
    at java.util.TimerThread.mainLoop (Timer.java:552)
  • locked <0x02c0af44> (a java.util.TaskQueue)
    at java.util.TimerThread.run (Timer.java:505)
    "ThreadPoolForeg" tid=32 Native
    "ThreadPoolForeg" prio=5 tid=32 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13341b68 self=0x7840622800
    | sysTid=14592 nice=0 cgrp=default sched=0/0 handle=0x78409bf4f0
    | state=S schedstat=( 5634501 17457207 22 ) utm=0 stm=0 core=3 HZ=100
    | stack=0x78408c5000-0x78408c7000 stackSize=1005KB
    | held mutexes=
    #00 pc 000000000001d7b0 /system/lib64/libc.so (syscall+32)
    #01 pc 0000000000066ea8 /system/lib64/libc.so (pthread_cond_timedwait+156)
    #02 pc 000000000073eea4 /data/app/com.android.chrome-v-XHSHUI-IW5wqDfNzZzrQ==/base.apk (???)
    "AsyncTask #5" tid=33 Runnable
    "AsyncTask #5" prio=5 tid=33 Runnable
    | group="main" sCount=0 dsCount=0 flags=0 obj=0x12e45940 self=0x7836da9a00
    | sysTid=14827 nice=0 cgrp=default sched=0/0 handle=0x7841da64f0
    | state=R schedstat=( 2646250 243417 10 ) utm=0 stm=0 core=1 HZ=100
    | stack=0x7841ca4000-0x7841ca6000 stackSize=1037KB
    | held mutexes= "mutator lock"(shared held)
    #00 pc 00000000003c951c /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream>&, int, BacktraceMap, char const, art::ArtMethod, void)+208)
    #01 pc 000000000049970c /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream>&, bool, BacktraceMap, bool) const+348)
    #02 pc 00000000004b1298 /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread
    )+884)
    #03 pc 000000000049a5b4 /system/lib64/libart.so (art::Thread::RunCheckpointFunction()+412)
    #04 pc 0000000000520ce0 /system/lib64/libart.so (art::JniMethodFastEndWithReference(_jobject, unsigned int, art::Thread)+68)
    #05 pc 0000000000058744 /system/framework/arm64/boot.oat (Java_java_lang_Class_getDeclaredMethodInternal__Ljava_lang_String_2_3Ljava_lang_Class_2+196)
    at java.lang.Class.getDeclaredMethodInternal (Native method)
    at java.lang.Class.getMethod (Class.java:2064)
    at java.lang.Class.getDeclaredMethod (Class.java:2047)
    at com.facebook.appevents.internal.InAppPurchaseEventManager.getMethod (InAppPurchaseEventManager.java:407)
    at com.facebook.appevents.internal.InAppPurchaseEventManager.invokeMethod (InAppPurchaseEventManager.java:437)
    at com.facebook.appevents.internal.InAppPurchaseEventManager.getPurchases (InAppPurchaseEventManager.java:231)
    at com.facebook.appevents.internal.InAppPurchaseEventManager.getPurchasesInapp (InAppPurchaseEventManager.java:208)
    at com.facebook.appevents.internal.InAppPurchaseActivityLifecycleTracker$2$1.run (InAppPurchaseActivityLifecycleTracker.java:124)
    at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636)
    at java.lang.Thread.run (Thread.java:764)
    "Binder:14195_5" tid=34 Native
    "Binder:14195_5" prio=5 tid=34 Native
    | group="main" sCount=1 dsCount=0 flags=1 obj=0x13100020 self=0x7836daa400
    | sysTid=14852 nice=0 cgrp=default sched=0/0 handle=0x78419ff4f0
    | state=S schedstat=( 1648248 3316624 17 ) utm=0 stm=0 core=0 HZ=100
    | stack=0x7841905000-0x7841907000 stackSize=1005KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    "Signal Catcher" tid=3 Runnable
    "Signal Catcher" daemon prio=5 tid=3 Runnable
    | group="system" sCount=0 dsCount=0 flags=0 obj=0x12f00000 self=0x785da5be00
    | sysTid=14201 nice=0 cgrp=default sched=0/0 handle=0x785620a4f0
    | state=R schedstat=( 45631871 14564542 43 ) utm=2 stm=1 core=2 HZ=100
    | stack=0x7856110000-0x7856112000 stackSize=1005KB
    | held mutexes= "mutator lock"(shared held)
    #00 pc 00000000003c951c /system/lib64/libart.so (art::DumpNativeStack(std::__1::basic_ostream>&, int, BacktraceMap, char const, art::ArtMethod, void)+208)
    #01 pc 000000000049970c /system/lib64/libart.so (art::Thread::DumpStack(std::__1::basic_ostream>&, bool, BacktraceMap, bool) const+348)
    #02 pc 00000000004b1298 /system/lib64/libart.so (art::DumpCheckpoint::Run(art::Thread
    )+884)
    #03 pc 00000000004a9b44 /system/lib64/libart.so (art::ThreadList::RunCheckpoint(art::Closure, art::Closure)+480)
    #04 pc 00000000004a94e0 /system/lib64/libart.so (art::ThreadList::Dump(std::__1::basic_ostream>&, bool)+792)
    #05 pc 00000000004a90f8 /system/lib64/libart.so (art::ThreadList::DumpForSigQuit(std::__1::basic_ostream>&)+912)
    #06 pc 000000000047de98 /system/lib64/libart.so (art::Runtime::DumpForSigQuit(std::__1::basic_ostream>&)+196)
    #07 pc 0000000000487c90 /system/lib64/libart.so (art::SignalCatcher::HandleSigQuit()+1932)
    #08 pc 00000000004867c0 /system/lib64/libart.so (art::SignalCatcher::Run(void)+348)
    #09 pc 0000000000067710 /system/lib64/libc.so (__pthread_start(void
    )+36)
    #10 pc 000000000001edf4 /system/lib64/libc.so (__start_thread+68)
    "HeapTaskDaemon" tid=7 Blocked
    "HeapTaskDaemon" daemon prio=5 tid=7 Blocked
    | group="system" sCount=1 dsCount=0 flags=1 obj=0x12f033d0 self=0x7853686000
    | sysTid=14205 nice=4 cgrp=default sched=0/0 handle=0x7848f754f0
    | state=S schedstat=( 147389880 116326082 125 ) utm=11 stm=2 core=3 HZ=100
    | stack=0x7848e73000-0x7848e75000 stackSize=1037KB
    | held mutexes=
    #00 pc 000000000001d7ac /system/lib64/libc.so (syscall+28)
    #01 pc 00000000000e661c /system/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks(art::Thread)+152)
    #02 pc 00000000002523f4 /system/lib64/libart.so (art::gc::TaskProcessor::GetTask(art::Thread
    )+300)
    #03 pc 0000000000252ce4 /system/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks(art::Thread*)+92)
    #04 pc 000000000006a7cc /system/framework/arm64/boot-core-libart.oat (Java_dalvik_system_VMRuntime_runHeapTasks__+124)
    at dalvik.system.VMRuntime.runHeapTasks (Native method)
  • waiting to lock an unknown object
    at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:461)
    at java.lang.Daemons$Daemon.run (Daemons.java:103)
    at java.lang.Thread.run (Thread.java:764)

Thanks for the plugin. I am trying to use this in my game to determine whether cloud save will work for me. I believe I am missing a step or entire concept somewhere, though. From what I can tell so far, authentication (which is necessary to save) won't succeed until you've uploaded a signed app to Play, and in order to get it from there, you have to actually release it (which requires approval by Google and creating icons, graphics, etc. etc.).

Is there any way to just "sandbox" test cloud save, leaderboards, events, etc. without actually publishing the entire app, or is the only way to test the features to actually get the thing fully submitted and available to myself as a tester through Play Store?

Thanks in advance!

Check a codelab for more details how to test it without publishing. You just need to configure it and have SHA1 key and package name.

If any of issues in this topic are still active for new plugin v0.10.06 please create them as separate topics.

@5argon Hello! Did you manage how to fix "Invalid applicationId with value" issue?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

parkJeongOck picture parkJeongOck  ·  4Comments

lolmourne picture lolmourne  ·  3Comments

rheros picture rheros  ·  5Comments

cataHHH picture cataHHH  ·  4Comments

RafikTSG picture RafikTSG  ·  3Comments