android - JNI C++ 调用 onCreate JAVA - Facebook

标签 android c++ facebook java-native-interface cocos2d-x

我用 C++ 在 cocos2dx 上创建了一个游戏,现在我想将它连接到 Facebook,为了完成这个,我用 JAVA 完成它,然后将它连接到 JNI。两者都运行良好,但要将其与 Facebook 连接,我需要 @override onCreate() 方法,但我不知道如何从 C++ JNI 调用该方法。

当我将我的 Facebook 代码移动到一个新函数时,我需要执行它

Session.openActiveSession(this, true, new Session.StatusCallback() {}

但是“this”不存在于 onCreate() 之外。有任何想法吗?

1-。如何在不调用方法 onCreate() 的情况下使用 Facebook 登录{}

2-。如何从 JNI C++ 调用 onCreate 方法?

我的 JNI 代码:

它调用 FacebookLogin,并且工作正常,但没有 onCreate

if(JniHelper::getStaticMethodInfo(minfo,
                                      "com/company/game/Facebook",
                                      "facebookLogin",
                                      "()V"))
    {
        jstring StringArg1 = minfo.env->NewStringUTF(msg);
        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
        minfo.env->DeleteLocalRef(minfo.classID);
    }

谢谢:D

最佳答案

我解决了。

问题是你需要把它放在 Cocos2dxActivity 的主 Actividty 上并分配 onEnter act = this。其中act是Cocos2dxActivity,在任何你调用这个的地方,你都会放置act

代码:

 public class game extends Cocos2dxActivity{

    static Cocos2dxActivity act;


protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        System.out.println("Super init");
        act = this;
}

public static void FacebookLogin() {
        Session.openActiveSession(act, true, new Session.StatusCallback() {

            // callback when session changes state
            @Override
            public void call(final Session session2, SessionState state, Exception exception) {
                if (session2.isOpened()) {

                    Request.newMeRequest(session2, new Request.GraphUserCallback() {

                          // callback after Graph API response with user object
                          @Override
                          public void onCompleted(GraphUser user, Response response) {
                            if (user != null) {
                              Log.d("Facebook", "Hello " + user.getName() + "! Id: "+user.getId());
                              isLoggedIn(); 
                              String mail = (String)response.getGraphObject().getProperty("email");
                              if (mail == null) {
                                  mail = "null";
                              }
                              userID(user.getId(), mail, user.getName());
                              session = session2;
                            }
                          }
                    }).executeAsync();

                }
            }
          });
    }
}

关于android - JNI C++ 调用 onCreate JAVA - Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20408501/

相关文章:

java - Android用户权限错误(android.permission.ACCESS_WIFI_STATE)

java - Android/Libgdx 如何解决这个问题?

c++ - if/else 优化测试结果不明确

php - 从后端发布到 Facebook 粉丝页面?

facebook - 如何在现有高流量网站上进行facebook审核流程?

android - 将改造 1 模块升级到改造 2

c++ - 为返回引用的函数赋值

c++ - 在 C++ 中转换大整数 <-> double

javascript - 使用 Javascript SDK 本地化 Facebook 登录

java - 如何在android中准确扫描所有连接到wifi的设备的IP和Mac地址?