1.在我们的cocos2-X项目导入到Eclipse中后,打开jni文件夹下的hellocpp文件夹,在这里你会看到一个main.cpp文件。你可以在Eclipse中新建C++类放入到这个hellocpp文件夹里
2.现在进入主题:
新建好C++类后,在类中请包涵
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
两句话
C++函数要用extern "C" 包涵,如
extern "C"
{
void applyBuy()
{
int i = 1;
i = CCUserDefault::sharedUserDefault()->getIntegerForKey("goumai");
JniMethodInfo t;
if(JniHelper::getStaticMethodInfo(t, CLASS_NAME, "rate", "()V"))
{
t.env->CallStaticVoidMethod(t.classID, t.methodID);
}
else
{
CCLog("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
}
}
void Java_com_mmobay_foodiechicken_FoodieChicken_IAPSuccess(JNIEnv *env, jobject thiz)
{
Buy_Success();
}
}
void applyBuy()函数就可以用C++语言调用,而applyBuy()里正好是使用 t.env->CallStaticVoidMethod(t.classID, t.methodID);方法调用我们在java中定义的static void rate()方法
以上是C++怎么调用java
下面是java调用C++
首先,我们在上述的hellocpp文件夹在的 cpp 文件中定义
定义一个c++方法,如
void Java_com_mmobay_foodiechicken_FoodieChicken_IAPSuccess(JNIEnv *env, jobject thiz)
{
Buy_Success();
}
_com_mmobay_foodiechicken 是com/mmobay/foodiechicken 的包名
_FoodieChicken 是FoodieChicken 是java的类名
_IAPSuccess 是在java类中要接入的C++函数名
在java类中,我们只要使用public static native void IAPSuccess(); 就可以接入C++中的函数void IAPSuccess(); 在此类中就可以调用C++方法IAPSuccess()了