0

我尝试运行一个 android 应用程序,它在本机中实现了它的部分代码。它确实找到了共享库,但是当它尝试在模拟器中运行它并调用它时,loadNativeCode我得到:

AndroidRuntime(1342): java.lang.UnsatisfiedLinkError: loadNativeCode

就我跟踪代码而言,它似乎错过了register_android_app_NativeActivity设置loadNativeCode映射的调用。但由于这是在运行时完成的,我不知道为什么它不起作用。

4

1 回答 1

0
JNI
loadNativeCode native function MUST format as:

Static way:
JNIEXPORT void JNICALL Java_com_tapir_android_jniutils_test_MainActivity_emptyf(JNIEnv *env, jobject obj)
{
...
}
package name is com.tapir.android.jniutils.test
class name is MainActivity
function name is emptyf

Dynamic way,use RegisterNatives to register your native function in JNI_onLoad function

JNINativeMethod nm;
nm.name = "emptyf";
/* method descriptor assigned to signature field */
nm.signature = "()V";
nm.fnPtr = native_emptyf;
env->RegisterNatives( cls, &nm, 1);

native_emptyf MUST like as 
void native_emptyf(JNIEnv *env, jobject obj)
{
...
}

hope can help u
于 2012-04-23T02:04:59.173 回答