本页介绍了如何排查使用 Play 游戏 SDK 开发 Android 游戏时可能遇到的问题。
无法登录
如果您无法让玩家登录游戏,请首先确保已按照相关说明创建客户端 ID 并配置游戏服务。如果您仍然遇到登录错误,请检查以下各项,确保您的游戏设置正确。
检查元数据标记
AndroidManifest.xml
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
<string name="app_id">123456789012</string>
检查软件包名称
游戏的软件包名称必须与客户端 ID 上的软件包名称一致。若要验证软件包名称,请执行以下操作:
AndroidManifest.xmlmanifestpackageAndroidManifest.xml
检查证书指纹
您用于为游戏签名的证书应与您的客户端 ID 所关联的证书指纹一致。要验证这一点,请先检查证书的 SHA1 指纹:
keytool -exportcert -alias your-key-name -keystore /path/to/your/keystore/file -list -v
接下来,检查您的构建工具是否使用此证书:
unzip YourGame.apk
keytool -printcert -file META-INF/CERT.RSA
keytool -printcert -file META-INF/CERT.DSA
接下来,检查证书指纹是否与客户端 ID 中配置的指纹一致。具体方法如下:
- 打开 Google Play 管理中心,找到您的游戏。
- 在游戏详情页面上,滚动到底部,然后点击指向关联的 Google Cloud Platform 项目的链接。
- 在 Google Cloud Platform 中,选择您的项目。
- 在左侧边栏中,选择 API 和身份验证。在显示的 API 列表中,确保 Google Play 游戏服务 API 的状态为启用。
- 在左侧边栏中,选择已注册的应用。
- 展开 OAuth 2.0 客户端 ID 部分,记下证书指纹 (SHA1)。
如果此指纹与上一步中的证书指纹不一致,您必须使用正确的证书指纹创建新的客户端 ID。您必须在 Google Play 管理中心(而非 Google Cloud Platform)中创建新的客户端 ID。
检查测试帐号是否已启用
在游戏发布之前,还必须将 Google Play 管理中心内创建游戏的帐号添加为测试人员。如需检查此项配置是否正确,请执行以下操作:
- 打开 Google Play 管理中心,找到您的游戏。
- 打开测试标签页。
- 检查您尝试登录的帐号是否在测试人员列表中。
如果您尝试登录的帐号未列出,请将其添加到列表中,然后等待几分钟,并尝试重新登录。
Proguard 问题
AndroidManifest.xml
导致设置问题的其他原因
检查是否存在导致错误的其他常见原因:
- 如果您的游戏已发布,请检查是否也发布了游戏设置(可能出现发布应用但未发布游戏设置的情况)。为此,请转到 Google Play 管理中心并转到您的应用,然后检查游戏名称旁边的复选框是否表明该游戏已发布。如果指示游戏处于其他状态(例如“可以发布”或“可供测试”),请点击该方框并选择发布游戏。
- 如果您无法发布游戏,请检查是否只有一个客户端 ID 启用了此应用是新用户的安装首选选项。
匿名监听器
请勿使用匿名监听器。匿名监听器是监听器接口的实现,以内嵌方式定义,如下所示。
ImageManager im = ...;
// Anonymous listener -- dangerous:
im.loadImage(new ImageManager.OnImageLoadedListener() {
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}
Activity
public class MyActivity extends Activity
implements ImageManager.OnImageLoadedListener {
private void loadOurImages() {
ImageManager im = ...;
im.loadImage(this);
}
@Override
public void onImageLoaded(Uri uri, Drawable drawable) {
// ...code...
}
}