Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 谷歌通过Cocos2dx 3.0决赛进行游戏活动_Android_Cocos2d X - Fatal编程技术网

Android 谷歌通过Cocos2dx 3.0决赛进行游戏活动

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

这个问题我已经有很长时间了,仍然找不到解决办法。 这是我如何从java代码中调用示例Google Play Games活动的:

    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游戏活动为什么会这样,但这个问题已经解决了