Android 谷歌通过Cocos2dx 3.0决赛进行游戏活动
这个问题我已经有很长时间了,仍然找不到解决办法。 这是我如何从java代码中调用示例Google Play Games活动的:Android 谷歌通过Cocos2dx 3.0决赛进行游戏活动,android,cocos2d-x,Android,Cocos2d X,这个问题我已经有很长时间了,仍然找不到解决办法。 这是我如何从java代码中调用示例Google Play Games活动的: final int RC_ACHIEVEMENTS = 100; final GameActivity activity = ((GameActivity) mContext); final GoogleApiClient apiClient = activity.getApiClient(); if (apiClient.isCon
final int RC_ACHIEVEMENTS = 100;
final GameActivity activity = ((GameActivity) mContext);
final GoogleApiClient apiClient = activity.getApiClient();
if (apiClient.isConnected()) {
Intent intent = Games.Achievements.getAchievementsIntent(activity.getApiClient());
activity.startActivityForResult(intent, RC_ACHIEVEMENTS);
}
事实上,这是从cocos代码调用的,所以我甚至可以这样做:
final int RC_ACHIEVEMENTS = 100;
final GameActivity activity = ((GameActivity) mContext);
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
final GoogleApiClient apiClient = activity.getApiClient();
if (apiClient.isConnected()) {
Intent intent = Games.Achievements.getAchievementsIntent(activity.getApiClient());
activity.startActivityForResult(intent, RC_ACHIEVEMENTS);
}
}
});
但我认为这是没有必要的
现在,当我进入这个活动并按下home(主页)按钮时,一切正常。我可以通过最近的活动或通过启动器图标返回该活动
但当我设置了不保持活动开发人员选项时,或者当我简单地终止进程,然后想要返回该活动时,我以崩溃结束
在我的理解中,在这种情况下,活动应该有目的地创建,从而使其开始。它与常见的android活动配合得很好。它只会在Google Play Games活动中崩溃
首先,我认为这可能是因为我使用startActivityForResult()
启动它以获得结果。但在我用普通的android活动测试之后,它也运行良好
有人有过类似的经验?问题出在Java_org_cocos2dxRenderer.cpp中
这是当前的nativeOnPause方法:
JNIEXPORT void JNICALL Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeOnPause() {
Application::getInstance()->applicationDidEnterBackground();
}
这应改为:
JNIEXPORT void JNICALL Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeOnPause() {
if(Application::getInstance()){
Application::getInstance()->applicationDidEnterBackground();
}
}
我不知道Google Play Services游戏活动为什么会这样,但这个问题已经解决了