我正在尝试在 android 上运行我的第一个 SDL hello-world 项目。我使用 SDL 源码包中提供的 android 项目模板,它使用一个名为 SDLActivity 的类与 android 和原生 c/c++ 代码进行通信。我将它们导入 Eclipse android 项目,然后稍微修改 AndroidManifest.xml、文件夹 jni 中的 Application.mk 和文件夹 jni/src 中的 Android.mk。
项目编译成功。但是当它在模拟器上运行时(我使用 GenyMotion),我在 logcat 中收到错误消息。
E/SDLActivity(1472): Failed loading eglChooseConfig: Invalid library handle
我也尝试在真实设备上进行调试。我收到了这条消息:
E/SDLActivity(28020): Failed loading eglChooseConfig: dlsym library handle is null
我尝试添加“System.loadLibrary("EGL");” 在 SDLActivity.java 中。不行。
这是我在 jni/src 中的 Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main
SDL_PATH := ../SDL
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SDL_PATH)/include
# Add your application source files here...
LOCAL_SRC_FILES := $(SDL_PATH)/src/main/android/SDL_android_main.c \
main.cpp
LOCAL_SHARED_LIBRARIES :=SDL2
LOCAL_LDLIBS := -lGLESv1_CM -lGLESv2 -llog -lEGL
include $(BUILD_SHARED_LIBRARY)