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 に答える