简体   繁体   English

Facebook登录时cocos2dx android崩溃

[英]cocos2dx android crash upon Facebook Login

I am integrating Facebook SDK for Android on my cocos2d-x-2.2 app 我在我的cocos2d-x-2.2应用程序上集成了Facebook SDK for Android

I call the login function like instructed in the FacebookSDK documentation, I also changed the Cocos2dxGameActivity to singleInstance to support SSO. 我按照FacebookSDK文档中的说明调用登录函数,我还将Cocos2dxGameActivity更改为singleInstance以支持SSO。 My login function is as follows: 我的登录功能如下:

    public void loginToFacebook() {
    JLogger.e(null, "MatchThree.loginToFacebook 0");
    if ( Session.getActiveSession() == null || (!Session.getActiveSession().isOpened()) ) {
        Session.openActiveSession(this, true, new Session.StatusCallback() {

            @Override
            public void call(Session session, SessionState state, Exception exception) {
                //
                JLogger.e("Facebook", "loginToFacebook call");
            }
        });
    }
}

However, upon the openActiveSession call, the application always crash with the following null pointer exception in native code: 但是,在openActiveSession调用时,应用程序始终在本机代码中因以下空指针异常而崩溃:

11-18 11:13:37.981: E/cocos2d-x assert(6973): C:/cocos2d-x-2.2/projects/fb-test/proj.android/../../../cocos2dx/platform/android/CCApplication.cpp function:sharedApplication line:60 11-18 11:13:37.981: A/libc(6973): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 6994 (Thread-16380) 11-18 11:13:37.981:E / cocos2d-x断言(6973):C:/cocos2d-x-2.2/projects/fb-test/proj.android /../../../ cocos2dx / platform /android/CCApplication.cpp函数:sharedApplication行:60 11-18 11:13:37.981:A / libc(6973):0x00000000(代码= 1)处的致命信号11(SIGSEGV),线程6994(Thread-16380)

Does anybody encounter this before? 以前有人遇到过这个吗?

Thanks for your input! 感谢您的输入!

There is a bug in Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeOnPause() whereby it did not check for NULL before calling applicationDidEnterBackground(); Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeOnPause()存在一个错误,它在调用applicationDidEnterBackground();之前没有检查NULL applicationDidEnterBackground();

add this: 添加这个:

    if (CCDirector::sharedDirector()->getOpenGLView()) {
        CCApplication::sharedApplication()->applicationDidEnterBackground();
    }

and you should be safe... 你应该安全......

Check out: 查看:

http://www.cocos2d-x.org/forums/6/topics/33956 http://www.cocos2d-x.org/forums/6/topics/33956

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM