Unity Google Play服务插件Social.localUser.Authenticate(...)App崩溃(Unity Google Play Service Plugin Social

编程入门 行业动态 更新时间:2024-10-26 11:14:40
Unity Google Play服务插件Social.localUser.Authenticate(...)App崩溃(Unity Google Play Service Plugin Social.localUser.Authenticate(…) App Crash)

适用于Google Play Service的Unity3d代码。我使用的是GooglePlayGamesPlugin-0.9.36和Unity 5.4

using UnityEngine; using System.Collections; using UnityEngine.SocialPlatforms; using GooglePlayGames; public class MainGui : MonoBehaviour { private const float FontSizeMult = 0.05f; private bool mWaitingForAuth = false; private string mStatusText = "Ready."; private bool dumpedToken = false; void Start() { // Select the Google Play Games platform as our social platform implementation PlayGamesPlatform.Activate(); } void OnGUI() { GUI.skin.button.fontSize = (int)(FontSizeMult * Screen.height); GUI.skin.label.fontSize = (int)(FontSizeMult * Screen.height); GUI.Label(new Rect(20, 20, Screen.width, Screen.height * 0.25f), mStatusText); Rect buttonRect = new Rect(0.25f * Screen.width, 0.10f * Screen.height, 0.5f * Screen.width, 0.25f * Screen.height); Rect imageRect = new Rect(buttonRect.x + buttonRect.width / 4f, buttonRect.y + buttonRect.height * 1.1f, buttonRect.width / 2f, buttonRect.width / 2f); if (mWaitingForAuth) { return; } string buttonLabel; if (Social.localUser.authenticated) { buttonLabel = "Sign Out"; if (Social.localUser.image != null) { GUI.DrawTexture(imageRect, Social.localUser.image, ScaleMode.ScaleToFit); } else { GUI.Label(imageRect, "No image available"); } mStatusText = "Ready"; if (!dumpedToken) { string token = GooglePlayGames.PlayGamesPlatform.Instance.GetToken(); Debug.Log("AccessToken = " + token); dumpedToken = token != null && token.Length > 0; } } else { buttonLabel = "Authenticate"; } if (GUI.Button(buttonRect, buttonLabel)) { if (!Social.localUser.authenticated) { // Authenticate mWaitingForAuth = true; mStatusText = "Authenticating..."; Social.localUser.Authenticate((bool success) => { mWaitingForAuth = false; if (success) { mStatusText = "Welcome " + Social.localUser.userName; } else { mStatusText = "Authentication failed."; } }); } else { // Sign out! mStatusText = "Signing out."; ((GooglePlayGames.PlayGamesPlatform)Social.Active).SignOut(); } } } }

当我按下验证按钮时,应用程序崩溃。并且Google Play服务对话框没有出现。我已经构建了应用程序并在Android Mobile中运行它。

02-25 20:18:42.181: A/DEBUG(583): pid: 23421, tid: 23439, name: main >>> devnp.testing <<< 02-25 20:18:42.197: W/debuggerd(583): type=1400 audit(0.0:35378): avc: denied { search } for name="devnp.testing" dev="dm-1" ino=141182 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 02-25 20:18:42.260: A/DEBUG(583): #11 pc 0009221b /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.260: A/DEBUG(583): #12 pc 00092e37 /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.261: A/DEBUG(583): #13 pc 000933dd /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.261: A/DEBUG(583): #14 pc 0008dc69 /data/app/devnp.testing-1/lib/arm/libgpg.so (_ZNK3gpg28AndroidPlatformConfiguration5ValidEv+76) 02-25 20:18:42.261: A/DEBUG(583): #15 pc 00053441 /data/app/devnp.testing-1/lib/arm/libgpg.so (_ZN3gpg12GameServices7Builder6CreateERKNS_28AndroidPlatformConfigurationE+40) 02-25 20:18:42.261: A/DEBUG(583): #16 pc 000c73dd /data/app/devnp.testing-1/lib/arm/libgpg.so (GameServices_Builder_Create+16) 02-25 20:18:43.054: W/ActivityManager(1439): Force finishing activity devnp.testing/com.unity3d.player.UnityPlayerActivity 02-25 20:18:43.233: I/ActivityManager(1439): Process devnp.testing (pid 23421) has died 02-25 20:18:43.234: W/InputDispatcher(1439): channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 02-25 20:18:43.234: E/InputDispatcher(1439): channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 02-25 20:18:43.237: I/WindowState(1439): WIN DEATH: Window{d1b52d4 u0 devnp.testing/com.unity3d.player.UnityPlayerActivity} 02-25 20:18:43.237: W/InputDispatcher(1439): Attempted to unregister already unregistered input channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)'

Unity3d Code for Google Play Service.I am using GooglePlayGamesPlugin-0.9.36 and Unity 5.4

using UnityEngine; using System.Collections; using UnityEngine.SocialPlatforms; using GooglePlayGames; public class MainGui : MonoBehaviour { private const float FontSizeMult = 0.05f; private bool mWaitingForAuth = false; private string mStatusText = "Ready."; private bool dumpedToken = false; void Start() { // Select the Google Play Games platform as our social platform implementation PlayGamesPlatform.Activate(); } void OnGUI() { GUI.skin.button.fontSize = (int)(FontSizeMult * Screen.height); GUI.skin.label.fontSize = (int)(FontSizeMult * Screen.height); GUI.Label(new Rect(20, 20, Screen.width, Screen.height * 0.25f), mStatusText); Rect buttonRect = new Rect(0.25f * Screen.width, 0.10f * Screen.height, 0.5f * Screen.width, 0.25f * Screen.height); Rect imageRect = new Rect(buttonRect.x + buttonRect.width / 4f, buttonRect.y + buttonRect.height * 1.1f, buttonRect.width / 2f, buttonRect.width / 2f); if (mWaitingForAuth) { return; } string buttonLabel; if (Social.localUser.authenticated) { buttonLabel = "Sign Out"; if (Social.localUser.image != null) { GUI.DrawTexture(imageRect, Social.localUser.image, ScaleMode.ScaleToFit); } else { GUI.Label(imageRect, "No image available"); } mStatusText = "Ready"; if (!dumpedToken) { string token = GooglePlayGames.PlayGamesPlatform.Instance.GetToken(); Debug.Log("AccessToken = " + token); dumpedToken = token != null && token.Length > 0; } } else { buttonLabel = "Authenticate"; } if (GUI.Button(buttonRect, buttonLabel)) { if (!Social.localUser.authenticated) { // Authenticate mWaitingForAuth = true; mStatusText = "Authenticating..."; Social.localUser.Authenticate((bool success) => { mWaitingForAuth = false; if (success) { mStatusText = "Welcome " + Social.localUser.userName; } else { mStatusText = "Authentication failed."; } }); } else { // Sign out! mStatusText = "Signing out."; ((GooglePlayGames.PlayGamesPlatform)Social.Active).SignOut(); } } } }

App crash when I Press Authenticate Button.And Google Play Service Dialog does not appear.I have build the app and run it in Android Mobile.

02-25 20:18:42.181: A/DEBUG(583): pid: 23421, tid: 23439, name: main >>> devnp.testing <<< 02-25 20:18:42.197: W/debuggerd(583): type=1400 audit(0.0:35378): avc: denied { search } for name="devnp.testing" dev="dm-1" ino=141182 scontext=u:r:debuggerd:s0 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=dir permissive=0 02-25 20:18:42.260: A/DEBUG(583): #11 pc 0009221b /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.260: A/DEBUG(583): #12 pc 00092e37 /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.261: A/DEBUG(583): #13 pc 000933dd /data/app/devnp.testing-1/lib/arm/libgpg.so 02-25 20:18:42.261: A/DEBUG(583): #14 pc 0008dc69 /data/app/devnp.testing-1/lib/arm/libgpg.so (_ZNK3gpg28AndroidPlatformConfiguration5ValidEv+76) 02-25 20:18:42.261: A/DEBUG(583): #15 pc 00053441 /data/app/devnp.testing-1/lib/arm/libgpg.so (_ZN3gpg12GameServices7Builder6CreateERKNS_28AndroidPlatformConfigurationE+40) 02-25 20:18:42.261: A/DEBUG(583): #16 pc 000c73dd /data/app/devnp.testing-1/lib/arm/libgpg.so (GameServices_Builder_Create+16) 02-25 20:18:43.054: W/ActivityManager(1439): Force finishing activity devnp.testing/com.unity3d.player.UnityPlayerActivity 02-25 20:18:43.233: I/ActivityManager(1439): Process devnp.testing (pid 23421) has died 02-25 20:18:43.234: W/InputDispatcher(1439): channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9 02-25 20:18:43.234: E/InputDispatcher(1439): channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)' ~ Channel is unrecoverably broken and will be disposed! 02-25 20:18:43.237: I/WindowState(1439): WIN DEATH: Window{d1b52d4 u0 devnp.testing/com.unity3d.player.UnityPlayerActivity} 02-25 20:18:43.237: W/InputDispatcher(1439): Attempted to unregister already unregistered input channel 'd1b52d4 devnp.testing/com.unity3d.player.UnityPlayerActivity (server)'

最满意答案

降级.aar文件可以解决问题

请参阅: https : //github.com/playgameservices/play-games-plugin-for-unity/issues/1604

较旧的文件: https : //drive.google.com/drive/u/0/folders/0B-w9u2zDKrHGUmtjMmk2VDhhSjA

以下是我解决此问题的方法:

转到资产>播放服务解析器> Android解析器>设置取消勾选启用后台解析(一旦我们降级.aar文件,这将取消更新通知)

转到<android_sdk_path>\extras\google\m2repository\com\google\android\gms 。 在每个文件夹中都有版本文件夹(例如10.0.1,10.2.0)。 在这些是我们需要的.aar文件或从谷歌驱动器链接上面下载我们将需要以下文件:

玩服务的广告,10.0.1.aar 玩服务的广告,精简版,10.0.1.aar 发挥服务认证 - 10.0.1.aar 发挥服务认证 - 基10.0.1.aar 打的服务 - 基础10.0.1.aar 发挥服务地下室,10.0.1.aar 播放服务,皆伐,10.0.1.aar 发挥服务驱10.0.1.aar 发挥服务 - 游戏 - 10.0.1.aar 发挥服务 - 盖斯 - 10.0.1.aar 发挥服务 - 附近-10.0.1.aar 发挥服务任务,10.0.1.aar

在<unity_project_path>\Assets\Plugins\Android删除上面的.aar文件的10.2.0版本及其META文件。

复制10.0.1版本 构建并运行您的项目。

Downgrading the .aar file fix the problem

See: https://github.com/playgameservices/play-games-plugin-for-unity/issues/1604

Older Files: https://drive.google.com/drive/u/0/folders/0B-w9u2zDKrHGUmtjMmk2VDhhSjA

Here is how I worked around this issue:

Go to Assets > Play Services Resolver > Android Resolver > Settings Un-tick Enable Background resolution (This will suppress the update notifications once we downgrade the .aar files)

Go to <android_sdk_path>\extras\google\m2repository\com\google\android\gms. Inside each of the folders there are version folders (such as 10.0.1, 10.2.0). And inside those are the .aar files we need or download from above google drive link We will need the following files:

play-services-ads-10.0.1.aar play-services-ads-lite-10.0.1.aar play-services-auth-10.0.1.aar play-services-auth-base-10.0.1.aar play-services-base-10.0.1.aar play-services-basement-10.0.1.aar play-services-clearcut-10.0.1.aar play-services-drive-10.0.1.aar play-services-games-10.0.1.aar play-services-gass-10.0.1.aar play-services-nearby-10.0.1.aar play-services-tasks-10.0.1.aar

Under <unity_project_path>\Assets\Plugins\Android delete the 10.2.0 versions of the .aar files above, with their META files.

Copy the 10.0.1 versions over Build and run your project.

更多推荐

本文发布于:2023-07-29 15:46:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1317570.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:插件   Social   Play   Unity   Google

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!