1.头文件引入
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#include <android/log.h>
#endif
2.按钮事件代码
调用非静态方法的关键代码
org/test/ActivityTest
ActivityTest类名、org/test/包名
调用playVedio方法是jni又创建了ActivityTest类的一个对象,通过这个对象去调用playVedio方法
CallStaticVoidMethod
getMethodInfo
void HelloWorld::menuCloseCallback(CCObject* pSender) {
JniMethodInfo minfo;
bool isHave = JniHelper::getMethodInfo(minfo,
"org/test/ActivityTest", "playVedio", "()V");
if (isHave) {
minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
}
}
3.java非static方法
void playVedio()
{
System.out.println(" playVedio playVedio playVedio ");
}
注意
C++通过jni调用java的非static方法,可能是又创建了一个新的此类的对象,通过这个对象调用。