2

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)'
Mukesh M
  • 2,242
  • 6
  • 28
  • 41
  • 1
    You may want to check this [forum](https://forum.unity3d.com/threads/attempted-to-unregister-already-unregistered-input-channel.230822/), they resolve the issue by removing the dynamic batching enabled in their build settings. And this SO [post](http://stackoverflow.com/a/29314587/5995040) explains that this exception is caused when you are interacting with a remote process and the remote process was previously killed. – Mr.Rebot Feb 26 '17 at 13:59
  • @Mr.Rebot app still crash after disabling dynamic batching. – Mukesh M Feb 26 '17 at 15:57
  • I think you've resolved the issue, thanks for sharing the workaround – Mr.Rebot Feb 26 '17 at 22:26

1 Answers1

3

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:

  1. 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)

  2. 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
  3. Under <unity_project_path>\Assets\Plugins\Android delete the 10.2.0 versions of the .aar files above, with their META files.

  4. Copy the 10.0.1 versions over
  5. Build and run your project.
Frank Nguyen
  • 6,493
  • 3
  • 38
  • 37
Mukesh M
  • 2,242
  • 6
  • 28
  • 41