2014-02-04 1 views
0

Я пытаюсь написать файл-оболочки для того, чтобы использовать Spotify API в нашем андроиде application.According к предыдущей ссылке: http://datababel.wordpress.com/2013/11/22/spotify-eclipse-and-the-android-ndk-1/Android Spotify: Создание .so файла spotifywrapper с использованием JNI в Android дает неопределенной ссылку ошибке

Я создал libspotify.so.Я пытаюсь создать файл spotifywrapper.so.Но во время создания этого spotify файла wrapper.so я получаю следующую ошибку.

"C:\\android-ndk-r9c-windows-x86_64\\android-ndk-r9c\\ndk-build.cmd" all 
[armeabi] Install  : libspotify.so => libs/armeabi/libspotify.so 
[armeabi] Compile++ thumb: spotifywrapper <= run_loop.cpp 
[armeabi] Compile++ thumb: spotifywrapper <= tasks.cpp 
[armeabi] Compile++ thumb: spotifywrapper <= jni_glue.cpp 
[armeabi] Compile++ thumb: spotifywrapper <= logger.cpp 
jni/logger.cpp: In function 'void log(char const*, ...)': 
jni/logger.cpp:40:90: warning: format '%d' expects argument of type 'int', but argument 5 has type 'pthread_t {aka long int}' [-Wformat] 
[armeabi] Compile++ thumb: spotifywrapper <= sound_driver.cpp 
[armeabi] SharedLibrary : libspotifywrapper.so 

C:/android-ndk-r9c-windows-x86_64/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/spotifywrapper/run_loop.o: in function connection_error(sp_session*, sp_error):jni/run_loop.cpp:103: error: undefined reference to 'sp_error_message' 

C:/android-ndk-r9c-windows-x86_64/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: ./obj/local/armeabi/objs/spotifywrapper/run_loop.o: in function process_events(std::list<int, std::allocator<int> >, std::list<std::string, std::allocator<std::string> >, sp_session*, sp_track*):jni/run_loop.cpp:127: error: undefined reference to 'sp_session_process_events' 

collect2: ld returned 1 exit status 
make.exe: *** [obj/local/armeabi/libspotifywrapper.so] Error 1 
+0

Являются ли эти функции внутри sourcetree, которые вы компилируете, или в другой библиотеке, на которую нужно ссылаться? Вы можете использовать инструменты, такие как рекурсивный 'grep' для исходного дерева или' objdump' для любых существующих библиотек, чтобы понять это. Как только вы узнаете, откуда они должны поступать, вы можете понять, почему их не найти, или даже сказать, что система сборки не беспокоится об этом, если вы уверены, что они будут там во время выполнения. –

ответ

0

Хорошая новость, Spotify выпустила бренд new Android SDK. Вы должны сильно рассмотреть возможность перемещения любых проектов libspotify в новый SDK, так как libspotify теперь считается устаревшим для этой платформы.

Смежные вопросы