SDL2,JNI和UnsatisfiedLinkError

时间:2015-01-25 13:54:17

标签: android java-native-interface sdl sdl-2 unsatisfiedlinkerror

我有以下设置 - 带按钮的MainActivity启动SDLActivity(SDL2)。在我的SDL项目的C ++方面,我有一个带有声明的本机函数的main.cpp:

extern "C"  void  Java_org_libdsl_app_SDLActivity_nativeSetAcc (JNIEnv* env, jclass clazz, jint Acc);

void Java_org_libdsl_app_SDLActivity_nativeSetAcc (JNIEnv* env, jclass clazz, jint Acc)
{
    SDL_Log ("set acc");
//  does something with the Acc value
}

我在SDLActivity.java中添加了以下内容:

public static native void nativeSetAcc (int Acc); 

但是我得到了不满意的链接错误(java.lang.UnsatisfiedLinkError:找不到Native方法:org.libsdl.app.SDLActivity.nativeSetAcc:(I)V)

C / SDL端编译正常(包括“jni.h”)。 android部分运行正常,直到我想使用nativeSetAcc;

奇怪的是,SDL库中的其他JNI函数确实可以工作(nativeQuit,nativeResume等)。而且我确信我做的是LoadLibrary(“main”) - main的main()中的代码正在工作(循环SDL事件等)。

查看libmain.so的hexdump,我确实看到了Java_org_libdsl_app_SDLActivity_nativeSetAcc字符串。

请帮忙!当然我错过了一些小东西,但我看不到。

1 个答案:

答案 0 :(得分:0)

好吧,伙计们,我是个傻瓜。而不是 libsdl 我在代码中使用了 libdsl 。星期天有点睡觉是非常值得推荐的