0
对于C SDL库创建一个Java包装时,遇到了这样的例外:无法理解这样的UnsatisfiedLinkError
Exception in thread "main" java.lang.UnsatisfiedLinkError: com.sdl4j.renderer.SDL_Renderer.SDL_CreateRenderer(Lcom/sdl4j/window/SDL_Window;II)Lcom/sdl4j/renderer/SDL_Renderer;
的Java来电(第1种方法完成罚款,并期待双方的Java/C++面100%相似):
SDL_Window win = SDL_CreateWindow("Hello World!", 0, 0, 1024, 768, SDL_WindowFlags.SDL_WINDOW_SHOWN);
SDL_Renderer ren = SDL_CreateRenderer(win, -1, SDL_RendererFlags.SDL_RENDERER_ACCELERATED | SDL_RendererFlags.SDL_RENDERER_PRESENTVSYNC);
本地Java函数:
public static native SDL_Renderer SDL_CreateRenderer(SDL_Window window, int index, int flags);
C头:
* Class: com_sdl4j_renderer_SDL_Renderer
* Method: SDL_CreateRenderer
* Signature: (Lcom/sdl4j/window/SDL_Window;II)Lcom/sdl4j/renderer/SDL_Renderer;
*/
JNIEXPORT jobject JNICALL Java_com_sdl4j_renderer_SDL_1Renderer_SDL_1CreateRenderer
(JNIEnv *, jclass, jobject, jint, jint);
C++实现:
JNIEXPORT jobject JNICALL Java_com_sdl4j_renderer_SDL_1Renderer_SDL_1CreateRenderer(JNIEnv *env, jclass , jobject win, jint index, jint flags) {
cout << "Create renderer: " << endl;
}
不明白为什么它不工作,你可以请帮忙。
干杯
您是否有SDL_CreateRenderer方法的重载? –
刚刚搜索了代码库,不,只有1个定义。 –
你用'javah'生成了这个东西吗?如果没有,那么做,并相应地调整C代码。 – EJP