playgameservices / play-games-plugin-for-unity

Google Play Games plugin for Unity
Other
3.45k stars 959 forks source link

Issue when Login GMS and Achievments (increment,complete) #2336

Open yomanmen opened 5 years ago

yomanmen commented 5 years ago

Hello, First of all everything is working but i get tons of errors on adb logcat. Which makes also my game hangs when completing achievements etc. I did also apply the latest 0.9.51. Any help / fix ?

10-27 15:58:22.026 9934 9963 I Unity : 10-27 15:58:22.098 4802 4812 I art : Do partial code cache collection, cod e=217KB, data=225KB 10-27 15:58:22.101 4802 4812 I art : After code cache collection, code=217 KB, data=225KB 10-27 15:58:22.101 4802 4812 I art : Increasing code cache capacity to 102 4KB 10-27 15:58:22.109 674 7327 W AppOps : Bad call: specified package com.googl e.android.play.games under uid 10184 but it is really 10140 10-27 15:58:22.109 674 7327 W AppOps : java.lang.RuntimeException: here 10-27 15:58:22.109 674 7327 W AppOps : at com.android.server.AppOpsServ ice.getOpsRawLocked(AppOpsService.java:1301) 10-27 15:58:22.109 674 7327 W AppOps : at com.android.server.AppOpsServ ice.checkPackage(AppOpsService.java:997) 10-27 15:58:22.109 674 7327 W AppOps : at com.android.internal.app.IApp OpsService$Stub.onTransact(IAppOpsService.java:169) 10-27 15:58:22.109 674 7327 W AppOps : at android.os.Binder.execTransac t(Binder.java:565) 10-27 15:58:22.113 674 4610 W AppOps : Bad call: specified package com.googl e.android.play.games under uid 10184 but it is really 10140 10-27 15:58:22.113 674 4610 W AppOps : java.lang.RuntimeException: here 10-27 15:58:22.113 674 4610 W AppOps : at com.android.server.AppOpsServ ice.getOpsRawLocked(AppOpsService.java:1301) 10-27 15:58:22.113 674 4610 W AppOps : at com.android.server.AppOpsServ ice.checkPackage(AppOpsService.java:997) 10-27 15:58:22.113 674 4610 W AppOps : at com.android.internal.app.IApp OpsService$Stub.onTransact(IAppOpsService.java:169) 10-27 15:58:22.113 674 4610 W AppOps : at android.os.Binder.execTransac t(Binder.java:565) 10-27 15:58:22.206 3352 8660 E NetworkScheduler: Invalid component specified. 10-27 15:58:22.213 4802 10323 I AchievementAgent: Sending achievement batch... 10-27 15:58:22.221 3352 3352 W ChimeraUtils: Non Chimera context

yomanmen commented 5 years ago

Achievements are completed but doesnt shows icon and also i cannot open achivements after this error popup and when disconnecting cannot connect again to play services need to repopen application. Using firebase 5.4.0 auth + gms 0.9.51. So the problem is when i send the increment of achivement or the unlocker.

olehkuznetsov commented 5 years ago

Can't see anything related to your issue in this log. Can you provide the error popup you mentioned, please?

yomanmen commented 5 years ago

AppOps : Bad call: specified package com.googl e.android.play.games under uid 10184 but it is really 10140

This is the line im talking about "error", after reset everything setup from the beginning game services setup on play console, the only thing changed is the "under ui 10184" to a different number.

This line apears on adb logcat when i try to incremenet achivement,or unlock or trying to see achivement ui after trying to incremenet one etc. So the problem is on sending increment and unlock as i can see

olehkuznetsov commented 5 years ago

Just ignore those "AppOps : Bad call: specified package com.googl e.android.play.games under uid 10184 but it is really 10140" lines for now. They are harmless and we are working on removing them from the log.

yomanmen commented 5 years ago

The problem is that when you interact with an achievement ( increment , unlock ) it shows this message and then you cannot see achievements ui ( loading circle). You need to w8 until these messages disappear and then achievement ui shows the achievements. Ill try to upload the game today to play store and check on the live version if that problem persists. I hope there is no problem on live version.

olehkuznetsov commented 5 years ago

If there will be an issue with Play Store version, just give the game name and I will try to figure it out.

yomanmen commented 5 years ago

I Think the problem is here... android.support.v7.app.AppCompatViewInflater this is causing it i guess!

11-02 20:44:32.618 5022 5022 I AppCompatDelegate: Failed to instantiate custom view inflater android.support.v7.app.AppCompatViewInflater. Falling back to def ault. 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: java.lang.ClassNotFoundExcep tion: android.support.v7.app.AppCompatViewInflater 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.Class.class ForName(Native Method) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.Class.forNa me(Class.java:400) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.Class.forNa me(Class.java:326) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at acl.a(:com.google.and roid.play.games@74660030@5.13.7466 (218554949.218554949-000300):14) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at acl.onCreateView(:com .google.android.play.games@74660030@5.13.7466 (218554949.218554949-000300):1) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.view.LayoutIn flater.createViewFromTag(LayoutInflater.java:769) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.view.LayoutIn flater.createViewFromTag(LayoutInflater.java:727) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.view.LayoutIn flater.inflate(LayoutInflater.java:495) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.view.LayoutIn flater.inflate(LayoutInflater.java:426) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.view.LayoutIn flater.inflate(LayoutInflater.java:377) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. policy.DecorView.onResourcesLoaded(DecorView.java:1821) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. policy.PhoneWindow.generateLayout(PhoneWindow.java:2555) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. policy.PhoneWindow.installDecor(PhoneWindow.java:2628) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. policy.PhoneWindow.getDecorView(PhoneWindow.java:2047) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at acl.p(:com.google.and roid.play.games@74660030@5.13.7466 (218554949.218554949-000300):8) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at acl.b(:com.google.and roid.play.games@74660030@5.13.7466 (218554949.218554949-000300):65) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at aci.setContentView(:c om.google.android.play.games@74660030@5.13.7466 (218554949.218554949-000300):1) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at jsx.onCreate(:com.goo gle.android.play.games@74660030@5.13.7466 (218554949.218554949-000300):5) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at jyw.onCreate(:com.goo gle.android.play.games@74660030@5.13.7466 (218554949.218554949-000300):1) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.google.android.gm s.games.ui.client.achievements.ClientAchievementListActivity.onCreate(:com.googl e.android.play.games@74660030@5.13.7466 (218554949.218554949-000300):1) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.Activity. performCreate(Activity.java:6684) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.Instrumen tation.callActivityOnCreate(Instrumentation.java:1119) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.ActivityT hread.performLaunchActivity(ActivityThread.java:2652) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.ActivityT hread.handleLaunchActivity(ActivityThread.java:2766) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.ActivityT hread.-wrap12(ActivityThread.java) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.ActivityT hread$H.handleMessage(ActivityThread.java:1507) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.os.Handler.di spatchMessage(Handler.java:102) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.os.Looper.loo p(Looper.java:154) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at android.app.ActivityT hread.main(ActivityThread.java:6236) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.reflect.Met hod.invoke(Native Method) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at com.android.internal. os.ZygoteInit.main(ZygoteInit.java:781) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: Caused by: java.lang.ClassNo tFoundException: Didn't find class "android.support.v7.app.AppCompatViewInflater " on path: DexPathList[[zip file "/data/app/com.google.android.play.games-2/base .apk"],nativeLibraryDirectories=[/data/app/com.google.android.play.games-2/lib/a rm, /data/app/com.google.android.play.games-2/base.apk!/lib/armeabi-v7a, /system /lib, /vendor/lib]] 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at dalvik.system.BaseDex ClassLoader.findClass(BaseDexClassLoader.java:56) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.ClassLoader .loadClass(ClassLoader.java:380) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: at java.lang.ClassLoader .loadClass(ClassLoader.java:312) 11-02 20:44:32.618 5022 5022 I AppCompatDelegate: ... 32 more 11-02 20:44:32.638 5022 5022 I AppCompatViewInflater: app:theme is now depreca ted. Please move to using android:theme instead. 11-02 20:44:32.659 3403 2327 E NetworkScheduler: Invalid component specified. 11-02 20:44:32.684 5022 5022 W PopupManager: You have not specified a View to use as content view for popups. Falling back to the Activity content view. Note that this may not work as expected in multi-screen environments 11-02 20:44:32.687 5022 5022 I AppLifecycleTracker: onActivityStarted: 11-02 20:44:32.702 5022 5022 W SVGAndroidRenderer: Masks are not supported whe n using getPicture() 11-02 20:44:32.706 5022 5022 W SVGAndroidRenderer: Masks are not supported whe n using getPicture() 11-02 20:44:32.707 3403 30105 E NetworkScheduler: Invalid component specified. 11-02 20:44:32.711 5022 5022 I AppLifecycleTracker: onActivityResumed: 11-02 20:44:32.724 4859 4871 W GamesServiceBroker: Client connected with SDK 1 4768000, Services 14366015, and Games 74660030 11-02 20:44:32.760 4859 6091 W GamesServiceBroker: Client connected with SDK 1 4768000, Services 14366015, and Games 74660030 11-02 20:44:32.786 559 739 I ActivityManager: Displayed com.google.android.p lay.games/com.google.android.gms.games.ui.client.achievements.ClientAchievementL istActivity: +192ms (total +247ms) 11-02 20:44:32.850 3403 3403 W ChimeraUtils: Non Chimera context 11-02 20:44:32.865 4859 6091 W GamesServiceBroker: Client connected with SDK 1 4768000, Services 14366015, and Games 74660030 11-02 20:44:32.899 4859 13251 W GamesServiceBroker: Client connected with SDK 1 4768000, Services 14366015, and Games 74660030 11-02 20:44:32.966 4859 5248 W GamesServiceBroker: Client connected with SDK 1 4768000, Services 14366015, and Games 74660030

yomanmen commented 5 years ago

Check "Candyl" on playstore if you want for the errors... Candyl

yomanmen commented 5 years ago

So Any Info about My problem is it me or the plugin ?

olehkuznetsov commented 5 years ago

It seems there is an issue with incrementAchievement API. You make a lot of calls to this API and there is an optimization to combine multiple calls with the same achievement Id, but it seems it doesn't work in your case. Thank you, for reporting - we will fix it our side. As temporal quick fix you can batch calls to incrementAchievement API your side.

olehkuznetsov commented 5 years ago

It seems the issue is because you call incrementAchievement and just after that you call loadAchievements. This blocks achievement combining optimization and creates a huge queue of operations which should complete before achievements dialog could be shown.

Why do you need to get achievement state in your game?

yomanmen commented 5 years ago

Im calling just this function for increment :

public static void IncrementAchievement(string id, int stepsToIncrement) { PlayGamesPlatform.Instance.IncrementAchievement(id, stepsToIncrement, success => { }); }

[Edit]

For Unlock :

public static void UnlockAchievement(string id) { PlayGamesPlatform.Instance.ReportProgress(id, 100, success => { }); }

I dont think im calling loadAchivements...

olehkuznetsov commented 5 years ago

Yes, you are right. I found GameServices().AchievementManager().Fetch is called each time from the plugin code. So, quick solution for you now is to batch and call incrementAchievement once per a 30 second or at exit to main menu/end level.

For unlockAchievement you also can use PlayGamesPlatform.Instance.UnlockAchievement(id, success => { });