1

我打算使用 SDL(简单 DirectMedia 层)在使用 ffmpeg 库的 Android 应用程序中显示视频输出。我已经从http://www.libsdl.org/download-1.2.php下载了源代码,并在我的 Ubuntu 上构建了(./configure、make & make install)。但是当我使用这些 .so 文件时,Android ndk-build 会抱怨“无法读取符号。文件格式错误”。

我可以在 Android 上使用在 Ubuntu 上构建的 .so 文件,还是需要以不同的方式为 Android 构建 SDL?

4

1 回答 1

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 && make install 时,您实际上是在为计算机的 CPU 构建 .so(当然对于 x86 / x86_64)

于 2013-03-04T06:22:21.830 回答