我打算使用SDL(Simple DirectMedia Layer)在我的Android应用程序中显示使用ffmpeg库的视频输出。我已经从http://www.libsdl.org/download-1.2.php下载了源代码并在我的Ubuntu上构建了(./configure,make& make install)。但是当我使用这些.so文件时,Android ndk-build会抱怨“无法读取符号。文件格式错误”。
我可以在Android上使用在Ubuntu上构建的.so文件,还是需要以不同的方式构建Android的SDL?
答案 0 :(得分:2)
正如README.android
您需要在jni文件夹中添加指向SDL
文件夹的符号链接,在jni/src/Android.mk
之后确保您拥有这些行
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.cpp \
main.c
LOCAL_SHARED_LIBRARIES := SDL
LOCAL_LDLIBS := -lGLESv1_CM -llog
include $(BUILD_SHARED_LIBRARY)
这样,SDL的.so将与您的项目一起为您的目标(当然是ARM cpu)编译,并自动包含在最终的.apk中
当你这样做时./configure&&制造&& make install,你实际上正在为计算机的CPU构建.so(当然是x86 / x86_64)