这个问题一般是java声明的native方法名称和.c .h里面的函数名称不一样导致,特别注意项目更换的时候包的名称,因为.c .h里面的函数名称要加上在java里面包的名称。
如之前项目包名是:
package com.example.hellojni;
.c .h里面对应:
JNIEXPORT void JNICALL Java_com_example_hello_JniInterface_nativeInit
(JNIEnv *, jobject);
移植so到其他工程,
新工程包
package com.example.test;
则.c ..h需要更改成如下:
JNIEXPORT void JNICALL Java_com_example_test_JniInterface_nativeInit
(JNIEnv *, jobject);