[cocos2d-x]JNI : 안드로이드 함수 호출 하기

2013. 5. 30. 15:39cocos2d-x



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안드로이드에서...


public static void JniTest()

{

Log.d("Cocos2d-x", "Function Call from C++!");

}


이 안드로이드 함수를 C++에서 호출 해보자!


호출할 cpp위쪽에 앞서 적었던 jni.h와 JniHelper.h를 추가 하자.


#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

#include "jni.h"

#include "platform/android/jni/JniHelper.h"

#endif


그리고 원하는 함수에다가


//자바 함수 호출하기

void Game::callJavaMethod(CCObject* pSender)

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

    JniMethodInfo t;

    

    if (JniHelper::getStaticMethodInfo(t

                                       , "com/ext/AdGame/AdGame"       //com/ext/AdGame <-까지가 패키지 명이고 그 뒤가 자바 파일 이름

                                       , "JniTest"    //<- 함수이름

                                       , "()V"))

    {

        // 함수 호출

        t.env->CallStaticVoidMethod(t.classID, t.methodID);

        // Release

        t.env->DeleteLocalRef(t.classID);

    }

#endif


자 이제 연결되었으니 안드로이드 쪽에서 함수 만들고 후딱후딱 해불자.