试图找出GPG插件出了什么问题。我按照说明并理解了文档,以便测试、运行登录并通过这个一显示主板UI。我做了游戏成绩+通过谷歌游戏开发者帐户的领导板,做设置,复制粘贴源,并做了。通过添加和GPG来测试广告,它运行得非常完美。我甚至更新了一些安卓插件(例如,.aar文件,防火墙-公共,清单),以便最大限度地提高兼容性和效率,这样我就可以构建APK,而不会出现任何干扰构建的问题。
但是,有一个问题:在我登录并尝试点击“显示主板UI”按钮以及询问用户是否经过身份验证的按钮事件之后,它将允许您在显示主板UI之前更新它,从而记录您的最新高分。下面是代码的工作方式:
首先,在开始时()回调..。
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration.Builder()
.Build();
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
PlayGamesPlatform.Activate();接下来,这是登录/注销过程。
public void LogInAccount() {
// Show dialog.
y = 0;
dialogPanel.SetActive (true);
dialogBackground.SetActive (true);
// You can logout if you're logged in.
if(Social.localUser.authenticated) {
((PlayGamesPlatform)Social.Active).SignOut ();
y = 0;
message.text = "Your account have been logged out.";
logButtonLabel.text = "Log-in via Google";
button.SetActive (true);
confirmSound.Play();
return;
}
// Check for status.
if (CheckNetwork.checkOnlineStatus ()) {
Social.localUser.Authenticate ((bool success) => {
if (success) {
// LOG IN SUCCESS! (Check if the email is identified or not.)
if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) {
y = 0;
message.text = "Login complete. However, email is not verified or unknown.";
logButtonLabel.text = "Log-out";
button.SetActive (true);
errorSound.Play();
} else {
y = 0;
message.text = "Login complete!\nYour email:" + ((PlayGamesLocalUser)Social.localUser).Email;
logButtonLabel.text = "Log-out";
button.SetActive (true);
confirmSound.Play();
}
} else if (!success) {
// LOG IN FAILED.
if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) {
message.text = "Login failed. Please try again later.\nYour email: ? ? ?";
} else {
message.text = "Login failed. Please try again later.\nYour email: " + ((PlayGamesLocalUser)Social.localUser).Email;
}
y = 0;
button.SetActive (true);
logButtonLabel.text = "Log-in via Google";
errorSound.Play();
}
});
} else {
message.text = "Connection is lost. Please enable online.";
button.SetActive (true);
}
}然后,节目主板回调/按钮事件。
public void OpenLeaderboard() {
// Show dialog.
y = 0;
dialogPanel.SetActive (true);
dialogBackground.SetActive (true);
// Check for status.
if (Social.localUser.authenticated && CheckNetwork.checkOnlineStatus ()) {
// Updating your highscore...
Social.ReportScore ((long)Score.GetScore (),
AchievementReference.leaderboard_best_intergalactic_chasers_top_score,
(bool success) => {
if(success) {
// LEADERBOARD APPEARED!
dialogPanel.SetActive (false);
dialogBackground.SetActive (false);
confirmSound.Play();
Social.ShowLeaderboardUI();
// ((PlayGamesPlatform)Social.Active).ShowLeaderboardUI(AchievementReference.leaderboard_best_intergalactic_chasers_top_score);
} else {
y = 0;
message.text = "Load failed. Please try again later.";
button.SetActive (true);
errorSound.Play();
}
});
} else if (!Social.localUser.authenticated) {
y = 0;
confirmSound.Play();
button.SetActive (true);
if (!CheckNetwork.checkOnlineStatus ()) {
message.text = "Connection not available at a moment.";
} else if (CheckNetwork.checkOnlineStatus ()) {
message.text = "You must login first in order to see the leaderboard.";
}
}
}在我的第一次尝试,我做登录(它有时显示欢迎标志)和点击领导板按钮,但没有发生什么事后,2分钟。第二次尝试,我做登录-注销-登录方法和GPG提示我选择电子邮件地址和欢迎用户名的标志出现在顶部。然而,still...when我点击了显示主板UI按钮,3分钟后什么也没发生。我使用这引用来获得更多关于有效显示领导板用户界面的想法,并检查代码示例。最后一次尝试,我假设在发布我创建的游戏服务(它之前是为测试模式设置的)并查看领导板UI是否有效之前,领导板UI不会出现。过了一两天,第一次尝试就用了同样的方法,结果还是没有成功。
问题是:为什么在测试模式下,甚至在通过Google developer部分发布游戏服务之后,领导板UI仍然不会出现?在绩效UI中显示也会发生同样的事情。是什么原因阻止了主板UI的出现,即使我在设置中正确地完成了它?我怀疑是互联网连接问题还是无线信号。问题可能是我所做的一个非常简单的游戏服务的长期负荷。我只创造了两个主板(高分和无)。和五项成就达到一定的分数和没有。船只被毁。
此外,除了显示主板用户界面问题外,还有一个错误使得字符串值(实际上,我正在检索所选的电子邮件地址)为空或空,即使通过Google帐户成功登录屏幕顶部的欢迎用户名标记。
更新后,我检查了bug,并提供了一些解决方案,从S.TarikCetin,我检查了logcat关于登录。一开始,我认为这是成功的登录。然后,我注意到:
W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:33:54 -07:00 ERROR: E
xception launching token request: java.lang.ClassNotFoundException: com.google.g
ames.bridge.TokenFragment
W/Unity (32099):
W/Unity (32099): (Filename: ./artifacts/generated/common/runtime/UnityEngineDe
bugBindings.gen.cpp Line: 37)
W/Unity (32099):
W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:33:54 -07:00 ERROR: U
nityEngine.AndroidJavaException: java.lang.ClassNotFoundException: com.google.ga
mes.bridge.TokenFragment
W/Unity (32099): java.lang.ClassNotFoundException: com.google.games.bridge.Tok
enFragment
W/Unity (32099): at java.lang.Class.classForName(Native Method)
W/Unity (32099): at java.lang.Class.forName(Class.java:217)
W/Unity (32099): at java.lang.Class.forName(Class.java:172)
W/Unity (32099): at com.unity3d.player.UnityPlayer.nativeRender(Native Me
thod)
W/Unity (32099): at com.unity3d.player.UnityPlayer.a(Unknown Source)
W/Unity (32099): at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
W/Unity (32099): Caused by: java.lang.NoClassDefFoundError: com/google/games/b
ridge/TokenFragment
W/Unity (32099): ... 6 more
W/Unity (32099): Caused by: java.lang.ClassNotFoundException: com.google.games
.bridge.TokenFragment
W/Unity (32099): at dalvik.system.BaseDexClassLoader.findClass(BaseDexCla
ssLoader.java:61)
W/Unity (32099): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
W/Unity (32099): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
W/Unity (32099): ... 6 more
W/Unity (32099): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] i
n <filename unknown>:0
W/Unity (32099): at UnityEn另外,当我登录和退出时,我遇到了logcat中的状态。
W/Unity (32099): at UnityEn
I/Unity (32099): [Play Games Plugin DLL] 07/05/16 14:38:07 -07:00 DEBUG: Star
ting Auth Transition. Op: SIGN_OUT status: ERROR_NOT_AUTHORIZED
I/Unity (32099):
I/Unity (32099): (Filename: ./artifacts/generated/common/runtime/UnityEngineDe
bugBindings.gen.cpp Line: 37)
I/Unity (32099):最后,这里是在尝试直接打开主板UI时发现的问题。
W/Unity (32099): *** [Play Games Plugin DLL] 07/05/16 14:40:31 -07:00 ERROR: U
nityEngine.AndroidJavaException: java.lang.ClassNotFoundException: com.google.ga
mes.bridge.NativeBridgeActivity
W/Unity (32099): java.lang.ClassNotFoundException: com.google.games.bridge.Nat
iveBridgeActivity
W/Unity (32099): at java.lang.Class.classForName(Native Method)
W/Unity (32099): at java.lang.Class.forName(Class.java:217)
W/Unity (32099): at java.lang.Class.forName(Class.java:172)
W/Unity (32099): at com.unity3d.player.UnityPlayer.nativeRender(Native Me
thod)
W/Unity (32099): at com.unity3d.player.UnityPlayer.a(Unknown Source)
W/Unity (32099): at com.unity3d.player.UnityPlayer$b.run(Unknown Source)
W/Unity (32099): Caused by: java.lang.NoClassDefFoundError: com/google/games/b
ridge/NativeBridgeActivity
W/Unity (32099): ... 6 more
W/Unity (32099): Caused by: java.lang.ClassNotFoundException: com.google.games
.bridge.NativeBridgeActivity
W/Unity (32099): at dalvik.system.BaseDexClassLoader.findClass(BaseDexCla
ssLoader.java:61)
W/Unity (32099): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
W/Unity (32099): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
W/Unity (32099): ... 6 more
W/Unity (32099): at UnityEngine.AndroidJNISafe.CheckException () [0x00000] i
n <filenUPDATE我在检查电子邮件是否为空时犯了错误。我看错了。尽管如此,电子邮件地址值仍然有问题,它应该返回已识别的字符串值,并在读取不为空时留下空白。
// LOG IN SUCCESS! (Check if the email is identified or not.)
if((((PlayGamesLocalUser)Social.localUser).Email != null) || (((PlayGamesLocalUser)Social.localUser).Email != "")) {
y = 0;
message.text = "Login complete!\nYour email:" + ((PlayGamesLocalUser)Social.localUser).Email;
logButtonLabel.text = "Log-out";
button.SetActive (true);
confirmSound.Play();
} else {
y = 0;
message.text = "Login complete. However, email is not verified or unknown.";
logButtonLabel.text = "Log-out";
button.SetActive (true);
errorSound.Play();
}发布于 2016-08-12 05:09:31
我从应用Guruz上查看并观察了本教程,并制作了示例教程。我观察了这个游戏的流程,并使用我的包名来修改它。幸运的是,领导板UI终于出现了。当我试图从App网站的示例项目中比较我的插件时,我假设安卓插件(一些库文件夹,如firebase和.aar文件)存在一些特定的问题或问题。可能是兼容性问题。
如果你想要制作主板用户界面和其他东西,并依赖于这个通过GIT网站的统一插件,远离这个软件。用它不值得。到处都是bug,尤其是Android插件。首先从零开始创建自己的GPG,观察插件和jars,因为我只关注Android。
https://stackoverflow.com/questions/38176565
复制相似问题