我正在使用android-NDK-r10来编译我的C++代码,它包装了libspotify的函数。在Android上加载libpthread.so时出错
以我的应用程序,我包括在延伸Service
这样一类的onCreate()
方法两个库:
System.loadLibrary("spotify");
System.loadLibrary("spotifywrapper");
以我C++代码(编译为 “libspotifywrapper.so”),I包括的libpthread照例:
#include <stdlib.h>
#include <pthread.h>
#include <string>
#include <api.h>
用ndk-build编译工程,我没有收到任何错误。
当我开始我的Android应用,达尔维克崩溃,并显示以下消息:
8月9日至26日:18:18.941:E/dalvikvm(11820):的dlopen(“/数据/ APP-LIB/com.example.myApp-1/libspotify.so“)失败:dlopen失败:无法加载”libspotify.so“所需的库”libpthread.so.0“;造成库“libpthread.so.0”找不到
我复制this版本的libpthread到libs/armeabi/
,它重命名为libpthread.so
,并且包括像上述两个库。当我运行该应用程序时,它会产生一个错误,找不到libc.so.6
。
Afaik,libc不包含在Android中,不是吗?
问谷歌,我读到libpthread包含在libc中,但由于Android使用Bionic,我不知道它是否包含libpthread。
实际的问题是:如何摆脱这个错误,找不到libpthread?
我认为这不是那么困难,而编译工作正常,它不可能是我的代码中的错误。我的Android设备(4.4.4和4.4.2)是否是原因?
我希望你能帮助我,
卢卡斯
我用Android的手臂正式libspotify版本,它应该工作。我也尝试过armv7发行版,但这不起作用。 – 2014-09-30 09:00:14
它取决于libpthread.so.0,它不是Android上存在的库,它当然不是官方的Android手臂二进制文件。这可能是嵌入式Linux/arm系统的一种。再次请与您的供应商联系。 – Digit 2014-09-30 14:05:11