我正在使用Libgdx为Android开发游戏。 几周前,我开始从Google Play服务中为游戏实施一些服务。 我跟着this guide
我能够成功实现这些服务。
昨天我打开了SDK,我决定上传Google Play服务套餐(因为AdMob出错了),这是我做过的最大错误。
我现在不知道发生了什么;最初的主要错误是google-play-services-lib的AndroidManifest,它针对的是尚未安装的sdk。 我决定安装那个sdk版本(顺便说一下api 9 ...(过时))但现在我的应用程序在启动时崩溃了。
我尝试重置所有内容并重复上面链接的指南的步骤,但它无论如何都不起作用。
这是应用程序启动时的位置:
12-09 09:29:41.681: I/art(20196): Late-enabling -Xcheck:jni
12-09 09:29:41.862: I/Adreno-EGL(20196): <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 09/02/15, 76f806e, Ibddc658e36
12-09 09:29:41.966: D/AndroidRuntime(20196): Shutting down VM
12-09 09:29:41.966: D/AndroidRuntime(20196): --------- beginning of crash
12-09 09:29:41.967: E/AndroidRuntime(20196): FATAL EXCEPTION: main
12-09 09:29:41.967: E/AndroidRuntime(20196): Process: com.gamestudio.gameapp.android, PID: 20196
12-09 09:29:41.967: E/AndroidRuntime(20196): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gamestudio.gameapp.android/com.gamestudio.gameapp.android.AndroidLauncher}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.example.games.basegameutils.GameHelper.onStart(android.app.Activity)' on a null object reference
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread.-wrap11(ActivityThread.java)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.os.Handler.dispatchMessage(Handler.java:102)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.os.Looper.loop(Looper.java:148)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread.main(ActivityThread.java:5417)
12-09 09:29:41.967: E/AndroidRuntime(20196): at java.lang.reflect.Method.invoke(Native Method)
12-09 09:29:41.967: E/AndroidRuntime(20196): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
12-09 09:29:41.967: E/AndroidRuntime(20196): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-09 09:29:41.967: E/AndroidRuntime(20196): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.example.games.basegameutils.GameHelper.onStart(android.app.Activity)' on a null object reference
12-09 09:29:41.967: E/AndroidRuntime(20196): at com.gamestudio.gameapp.android.AndroidLauncher.onStart(AndroidLauncher.java:101)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.Activity.performStart(Activity.java:6253)
12-09 09:29:41.967: E/AndroidRuntime(20196): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
12-09 09:29:41.967: E/AndroidRuntime(20196): ... 9 more
我认为这个问题与被盗用的libgdx项目有关。 例如,R类未正确编译,因为我的项目的某些值在R.
中不再可见感谢您的帮助。
卢卡
**更新的问题**
我正在使用eclipse
答案 0 :(得分:0)
我解决了这个问题。 问题是:由于我没有使用Android Studio进行开发,因此存在很多与依赖项管理相关的问题。 我按照本指南this guide来实施游戏服务。 现在指南说你必须将BaseGameUtils和google-play-services-lib导入为“库项目”,然后将对BaseGameUtils项目的引用添加到你想要的所有项目中。
指南未说明的是BaseGameUtils项目需要特定版本的google-play-services-lib。 这没有指定,因为如果您使用Android Studio,所有依赖项将由Grandle处理;事实上,如果您查看BaseGameUtils项目的build.grandle文件,您可以看到它需要google-play-services-lib.8.1.0。
因为我已经从SDK Manager更新了google-play-services-lib,并且因为我不知道BaseGameUtils的依赖性,所以对新版本中不再包含的方法的引用存在很多问题google-play-services-lib。
知道我找到了google-play-sdk-lib的旧版本,我再次关注上面链接的指南。
我认为这是包含BaseGameUtils lib的最糟糕的方式,但是......因为当我仍然支持ecplise时我启动了这个项目......
无论如何,谢谢你,
卢卡