libGDX Google Play 游戏服务 - Android

2024-01-19

我正在尝试将 Google play 游戏服务实施到 libGDX 项目中。 在我的 android 项目中,MainActivity 如下所示:

public class MainActivity extends AndroidApplication implements
    GameHelper.GameHelperListener, ActionResolver {

GameHelper gameHelper;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    gameHelper = new GameHelper(this, GameHelper.CLIENT_ALL);
    gameHelper.enableDebugLog(true);

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = false;

    initialize(new CJSGame(this), cfg);
    gameHelper.setup(this);

}

@Override
public void onStart() {
    super.onStart();
    gameHelper.onStart(this);
}

@Override
public void onStop() {
    super.onStop();
    gameHelper.onStop();
}

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    gameHelper.onActivityResult(requestCode, resultCode, data);
}

@Override
public boolean getSignedInGPGS() {
    // TODO Auto-generated method stub
    return gameHelper.isSignedIn();
}

@Override
public void loginGPGS() {
    // TODO Auto-generated method stub
    try {
        runOnUiThread(new Runnable() {
            public void run() {
                gameHelper.beginUserInitiatedSignIn();
            }
        });
    } catch (final Exception ex) {
    }
}

@Override
public void submitScoreGPGS(int score) {
    // TODO Auto-generated method stub
    Games.Leaderboards.submitScore(gameHelper.getApiClient(),
            getString(R.string.leaderboard1_id), score);
}

@Override
public void unlockAchievementGPGS(String achievementId) {
    // TODO Auto-generated method stub
    Games.Achievements.unlock(gameHelper.getApiClient(), achievementId);
}

@Override
public void getLeaderboardGPGS() {
    // TODO Auto-generated method stub
    startActivityForResult(
            Games.Leaderboards.getLeaderboardIntent(
                    gameHelper.getApiClient(),
                    getString(R.string.leaderboard1_id)), 100);
}

@Override
public void getAchievementsGPGS() {
    // TODO Auto-generated method stub
    startActivityForResult(
            Games.Achievements.getAchievementsIntent(gameHelper
                    .getApiClient()), 101);
}

@Override
public void onSignInFailed() {
    // TODO Auto-generated method stub
    System.out.println("Sign in failed");
}

@Override
public void onSignInSucceeded() {
    // TODO Auto-generated method stub
    System.out.println("Sign in succeeded");
}
}

当我尝试在 Android 设备上运行该应用程序时,我最终在 logcat 中出现 IllegalStateException 错误:

03-13 10:23:40.766: E/AndroidRuntime(31339): FATAL EXCEPTION: main
03-13 10:23:40.766: E/AndroidRuntime(31339): java.lang.IllegalStateException: A fatal developer error has occurred. Check the logs for further information.
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$h.b(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at  com.google.android.gms.internal.dw$h.b(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$b.bR(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.google.android.gms.internal.dw$a.handleMessage(Unknown Source)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.os.Handler.dispatchMessage(Handler.java:99)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.os.Looper.loop(Looper.java:137)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at android.app.ActivityThread.main(ActivityThread.java:5419)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at java.lang.reflect.Method.invokeNative(Native Method)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at java.lang.reflect.Method.invoke(Method.java:525)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
03-13 10:23:40.766: E/AndroidRuntime(31339):    at dalvik.system.NativeStart.main(Native Method)

有什么帮助吗?

编辑:我已经在清单文件中有元数据标签

<meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/app_id" />

解决了,我启用了adb logcat,发现清单文件中缺少另一个元数据标签:

<meta-data android:name="com.google.android.gms.appstate.APP_ID"
    android:value="@string/app_id" />

刚刚添加了这个标签,它就可以正常工作了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libGDX Google Play 游戏服务 - Android 的相关文章

  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • 在解决依赖关系之前运行 gradle 任务

    我想运行一个 gradle 任务 在 gradle 尝试解决依赖关系之前获取其他源并设置它们 在 build gradle 中有一个任务 用于获取子项目的源代码 该任务需要在 Gradle 尝试解决依赖关系之前运行 因为子项目是依赖关系的一
  • getItemAtPosition() 未在列表视图中返回值

    我创建了一个自定义基本适配器类 用图像和文本填充列表视图 类的代码如下 public class ViewAdapter extends BaseAdapter private Activity activity private Strin
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • ImageView Android 内存

    我原来的后续question https stackoverflow com questions 5339883 android app ram usage 有没有一种方法可以在 Android 应用程序中使用 ImageViews 而不使
  • Android 应用程序主活动出现 ClassNotFoundException

    大多数设备都可以运行我的应用程序 但我收到此错误报告 java lang RuntimeException Unable to instantiate activity ComponentInfo com company app com c
  • Android/java:从 ProGuard 过渡/迁移到 R8?

    我想知道如何从ProGuard to R8 我是否应该从 Gradle 文件中删除与 Proguard 相关的行并添加android enableR8 true线代替 Thanks Proguard 由 GuardSquare 开发和维护
  • 获取包含位图支持的画布的 Android 视图上的点的像素颜色值

    我正在尝试找出获取给定点上像素颜色值的最佳方法View http developer android com reference android view View html 我可以通过三种方式写入视图 我设置了背景图像View setBa
  • 运行 libgdx html

    我正在尝试理解这个伟大的库 当我尝试使用 run as gt web 应用程序运行 html 时 出现错误 这是控制台文本和 gwt 定义文件 Loading modules com me mygdxgame GwtDefinition L
  • 如何编写 adb jdwp + adbforward 脚本?

    我正在尝试使用命令行和脚本工具调试 Android 应用程序 我已经受够了 Android Studio 占用我的 CPU 要连接到我的应用程序 我需要adb jdwp获取 pid 然后adb forward tcp 8700 jdwp
  • 如何将您的终端与 Android 模拟器连接

    我尝试导航到 android 工具文件夹并输入 adb shell 命令 但它似乎不起作用 我的终端似乎只能识别命令的 adb 部分 并给我一条错误消息 我究竟做错了什么 通过键入列出所有连接的设备adb devices 检查是否列出了任何
  • Android TabLayout:均匀分布

    我正在查看 Google IO 中使用的 Google 类 称为 SlidingTabLayout 在该类中 有一个名为 setDistributeEvenly 的方法 它允许所有这些选项卡在屏幕上均匀分布 每个选项卡具有相同的大小 中心对
  • 无法在 Android 中使用自定义数组适配器进行搜索?

    我无法从以下位置搜索listview 我尝试了各种方法 但它对我不起作用 没有错误 我有其他方式进行搜索 但我想让这种方式成为可能 这是代码 public class MainActivity extends Activity implem
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • 特定铃声 firebase 通知 xamarin.android

    How i can force the push notification to run ringtone instead of default notification sound is there any way to ovveride
  • 调用属于Fragment的Activity的函数

    我正在与多个Fragments在 Android 下 我对如何从嵌入式应用程序发送和接收数据感到困惑 为了简单的解释 我有一个ListFragment and a MapFragment使用解释的方法here https stackover
  • 如何在不下载子项的情况下从 Firebase 获取子项密钥?

    我有一个 Firebase 数据库 其中的节点 items 有很多子项 我想导入子项键的列表 由于每个子项都包含相当多我对此不感兴趣的数据 因此我想仅下载子项密钥 以最大程度地减少传输的数据量 为了便于说明 假设我有以下数据结构 然后我想获
  • 活动构建变体没有测试工件

    我基于 调试 构建变体创建了一个名为 bitrise 的新构建类型 使用 debug 构建变体时 经过检测的 androidTests 构建并运行良好 但是当我切换到新的 bitrise 构建变体时 出现以下错误 Process finis
  • Android 使用不同的签名密钥更新市场应用程序

    开发人员使用他的个人密钥库签署了应用程序 但它应该是公司的密钥库 现在是否可以使用公司的密钥库更新市场中的应用程序 并且仍然可以简化对用户的更新 这有什么后果吗 不可以 您必须将该应用程序作为新应用程序发布到市场上 这次是用公司的key签名

随机推荐

  • Concourse CI / Gradle:无法创建父目录

    我正在尝试使用 gradle 构建一个 java 项目3 4 1和使用 vagrant 的大厅concourse lite box v2 7 4 和 docker 镜像gradle 3 4 1 jdk8 My pipeline yml is
  • 在 Visual Studio 2010 中将多个项目的多个存储库合并到一个总体解决方案的存储库中?

    假设我有两个 Visual Studio 2010 项目 都在同一个解决方案中 其中一个项目是用于执行任务 x 的 dll 库 另一个是该库的 Windows 窗体 GUI 前端 我们还假设我开始使用两个不同的 Mercurial 存储库
  • Eclipse 的 ecj 编译器可扩展吗?

    我对修改 Java 语法和一些隐式范例感兴趣 由于我使用 Eclipse 进行开发 它提供了自己的编译器 也可以独立使用 所以我想知道是否无法扩展 ecj 以遵守其他语法规则 并正确处理它们 我的语法更改都可以通过从 AST 中删除元素并创
  • jvm 在负载下速度更快吗?

    大量的个人经验 轶事证据和一些基本分析表明 Java 服务器 通常运行 Oracle 的 1 6 JVM 在相当大的负载下 显然仅在一定程度上 具有更快的响应时间 我不认为这纯粹是热点 因为当流量减少时 响应时间会再次减慢 在许多情况下 我
  • 在 JavaScript 中序列化和反序列化数组

    我正在使用 jquery 的 tag it 库来制作一个标记系统 有点像 stackoverflow 的系统 用户输入标签后 库返回一个 JavaScript 数组 我想将其保存在 MySQL 数据库中 我在 javascript 中没有找
  • 内存泄漏和弱引用

    我遇到了一个问题 看起来像是我的一个应用程序中存在内存泄漏 该应用程序随着时间的推移使用更多的内存 在工作大约一周后它会挂起 我已经检测到并修复了一些与我编写的类相关的泄漏 比较使用 sos dll 进行的堆转储很快就发现了它们 并且这些泄
  • 如何关闭 VS Code 中的“匹配”突出显示?

    我不希望 Visual Studio Code 突出显示匹配的括号 所有出现的同一变量等 我发现它非常分散注意力 但是 我找不到禁用此功能的方法 我似乎能够更改的唯一突出显示选项是 editor selectionHighlight 和 e
  • Excel 宏冻结 Outlook

    我有一个相当重的 Excel 宏 当它运行时 Outlook 冻结 我知道它没有使用所有的 CPU 功率 因为a 我有一台强大的多核机器b 我的所有其他程序 甚至是重型程序 都运行良好 Outlook 和 Excel 似乎正在共享 Exce
  • 在下拉菜单中显示 SQL 数据库中的数据

    我有一个存储名称的数据库 我的数据库查询正在运行 但假设我有 5 个名称想要在下拉菜单中显示 如何使下拉菜单中的默认文本显示这 5 个名称 基本上我想要完成的是 查询我的数据库并将所有客户名称存储到一个变量中 假设数据库中有 5 个名字 我
  • 自动安装 IIS 7 及更高版本的 Powershell 脚本

    我是 powershell 的新手 我需要的是一个 powershell 脚本 可以自动安装 IIS7 或更高版本的过程 我需要对角色服务进行某些配置 任何在这方面的帮助都是值得赞赏的 我发现以下博客很有用 通过使用帮助进行了某些更改 我能
  • C++ for 循环优化问题

    我在 VC 中有以下代码 for int i a 1 b i lt a b i lt someObject gt someFunction i 据我所知 编译器优化了所有这些算术运算 并且它们不会在每个循环上执行 但我不确定它们是否可以告诉
  • 如何在多用户环境中处理表单编辑?

    我的应用程序是带有服务器和客户端的多用户应用程序 在这种形式中 多个用户可以同时访问 他们可以执行保存为草稿或提交操作 问题是我想控制多用户同时编辑表单 例如 用户 X 正在编辑文本字段 复选框的值并执行另存为草稿 同时用户 Y 编辑相同的
  • 自动创建用于 xml 反序列化的 C# 类不起作用

    我正在努力为此 xml 创建反序列化类
  • Elastic Search Kibana PDF 报告

    我正在尝试生成 PDF 报告并使用脚本下载它们 我按照以下说明进行操作 https github com elastic kibana blob master docs user reporting automating report Ge
  • 将全名向量拆分为 2 个独立向量的有效方法

    我有一个由全名组成的向量 名字和姓氏用逗号分隔 这就是前几个元素的样子 gt head val vec 1 Aabye Edgar Aaltonen Arvo Aaltonen Paavo 4 Aalvik Grimsb Kari Aamo
  • SQL SERVER:获取两个日期之间的总天数

    我正在尝试获取两天之间的总天数 1 1 2011 3 1 2011 RETURN 62 可以在 SQL Server 中实现吗 PRINT DATEDIFF DAY 1 1 2011 3 1 2011 会给你你所追求的 这给出了两个日期之间
  • 如何使用 API V2 Moz HTTP 请求

    我正在尝试使用 HTTP 请求通过文件获取内容功能连接到 Moz API V2 但我是新使用这个 你们能帮助我吗 他们的文档中的 HTTP 请求示例 POST v2 url metrics Host lsapi seomoz com Con
  • Java Collections 在使用 Collections.addAll() 时何时抛出 NullPointerException

    在什么条件下会出现Collections addAll 方法抛出一个NullPointerException 官方文档提到 NullPointerException 如果指定的集合包含 null 元素并且此集合不允许 null 元素 或者如
  • 是否有免费的虚拟智能卡可供我用来运行一些测试?

    我想这没有什么区别 但我会尝试使用 Java 应用程序来访问它 更新 我将在公钥 私钥加密系统中使用智能卡 智能卡有不同类型 您没有明确说明您指的是哪种测试 但我猜您正在谈论加密智能卡 JavaCard 开发套件包含一个参考 JCRE 可用
  • libGDX Google Play 游戏服务 - Android

    我正在尝试将 Google play 游戏服务实施到 libGDX 项目中 在我的 android 项目中 MainActivity 如下所示 public class MainActivity extends AndroidApplica