2012-05-27 7 views
1

Je prévois d'utiliser SDL (Simple DirectMedia Layer) pour afficher la sortie vidéo dans mon application Android qui utilise les bibliothèques ffmpeg. J'ai téléchargé les sources de http://www.libsdl.org/download-1.2.php et construit (./configure, make & make install) sur mon Ubuntu. Mais quand j'utilise ces fichiers .so, l'Android ndk-build se plaint que "Impossible de lire les symboles.Fichier au format incorrect". Puis-je utiliser les fichiers .so qui sont construits sur Ubuntu sous Android ou dois-je créer le SDL pour Android différemment?Comment construire des bibliothèques SDL pour Android

+1

Vous aurez besoin de les construire en utilisant le [NDK] (http://developer.android.com /sdk/ndk/index.html) - Les appareils Android utilisent généralement des processeurs d'armement et votre fichier x86 .so n'est pas compatible. – Jens

+0

@Jens merci de clarifier. Pouvez-vous décrire comment je peux construire SDL en utilisant ndk? J'ai essayé de modifier le fichier de configuration avec le type de cible, mais j'ai rencontré des erreurs de construction. Ou est-il un endroit où je peux télécharger les fichiers libSDL.so déjà compilés? – Harish

+1

Avez-vous vérifié le [readme] (http://www.libsdl.org/tmp/SDL/README.android) pour libsdl concernant Android? – Jens

Répondre

1

Comme écrit dans le README.android

vous devez ajouter dans votre JNI dossier un lien symbolique vers le dossier SDL, après dans votre jni/src/Android.mk être sûr que vous avez ces lignes

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) 

De cette façon la. ainsi de SDL sera compilé pour votre cible (certainement CPU ARM) avec votre projet, et automatiquement inclure dans le final .apk

lorsque vous faites ./configure & & faire & & make install, vous construisez en fait la .donc pour le processeur de votre ordinateur (certainement pour x86/x86_64)

Questions connexes