工作中一个折磨许久的问题:从java端运行jni调用C++。
编译没问题,但是一到java回调C++的时候就报错,UnsatisfiedLinkError找不到某个方法:
再看jni方法
void Java_com_cwa_FatalFight_Cocos2dx_videoJNI_moviePlaybackFinished(JNIEnv *env, jclass obj)
{
包名是com.cwa.FatalFight_Cocos2dx, 问题是jni方法的规则是包名的点要改成下划线,那么包名中已经有一个下划线怎么办,答案是出错。
于是路径改成com.cwa.FatalFightCocos2dx, jni方法改成
void Java_com_cwa_FatalFightCocos2dx_videoJNI_moviePlaybackFinished(JNIEnv *env, jclass obj)、
再编译 运行 通过。