2012-05-27 22 views
1

我打算使用SDL(Simple DirectMedia Layer)在使用ffmpeg庫的Android應用程序中顯示視頻輸出。我從http://www.libsdl.org/download-1.2.php下載了源代碼,並在我的Ubuntu上構建了(./configure,make & make install)。但是當我使用這些.so文件時,Android ndk-build會抱怨「無法讀取符號,文件格式錯誤」。如何爲Android構建SDL庫

我可以使用在Android上構建於Ubuntu上的.so文件,還是需要以不同方式構建Android版SDL?

+1

你需要使用[ndk](http://developer.android.com /sdk/ndk/index.html) - Android設備通常使用arm處理器,而x86 .so-file不兼容。 – Jens

+0

@Jens感謝您澄清。您能否描述我如何使用ndk構建SDL?我嘗試用目標類型修改配置文件,但遇到了構建錯誤。或者有什麼地方可以下載已編譯的libSDL.so文件? – Harish

+1

你檢查了關於Android的libsdl的[readme](http://www.libsdl.org/tmp/SDL/README.android)嗎? – Jens

回答

1

正如寫在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將會與您的項目一起編譯爲您的目標(當然是ARM cpu),並且會自動包含在最終的.apk

當您執行./configure & & make & & make install,你實際上是在爲你的電腦的CPU構建.so(當然是x86/x86_64)