在Android上导入libtorrent库时出现分段错误

时间:2014-06-05 14:10:24

标签: android python c++ boost segmentation-fault

我试图在Android设备上运行Libtorrent,使用Python for Android(https://github.com/kivy/python-for-android)。我有来自RUTracker的Libtorrent源文件,这是一个现有的Android应用程序,成功编译了Android的libtorrent库。他们正在使用JNI与Libtorrent库进行Java通信。

我还设法使用本网站上的说明编译了他们的Libtorrent库:https://github.com/pepibumur/Torrent-Movies。我首先使用NDK工具链编译了Boost 1.49。之后我成功编译了Libtorrent,并用一个非常简单的Java应用程序测试了这个.so文件。

现在我想用Python包装器编译,这样我就可以用Python导入libtorrent库了。经过一些研究,我发现我必须创建以下文件并将其包含在编译过程中:

#include <boost/python/module.hpp>

BOOST_PYTHON_MODULE(libtorrent)
{
}

为此,我还需要libpython,所以我编译了一个我需要的Python文件的.a文件并将其链接起来。在Python中导入模块时,它会产生分段错误。下面显示了堆栈跟踪的一些最重要的行:

I/DEBUG   (  317):     #01  pc 0001c75c  /system/lib/libc.so (abort+4)
I/DEBUG   (  317):     #02  pc 001ea5b3  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so (Py_FatalError+42)
I/DEBUG   (  317): 
I/DEBUG   (  317): stack:
I/DEBUG   (  317):          75231518  00000001  
I/DEBUG   (  317):          7523151c  6c12aaba  /dev/ashmem/dalvik-mark-stack (deleted)
I/DEBUG   (  317):          75231520  40110170  /system/lib/libc.so
I/DEBUG   (  317):          75231524  724cf698  
I/DEBUG   (  317):          75231528  0000004e  
I/DEBUG   (  317):          7523152c  400e820d  /system/lib/libc.so (__sflush+56)
I/DEBUG   (  317):          75231530  40110220  /system/lib/libc.so
I/DEBUG   (  317):          75231534  401134ac  
I/DEBUG   (  317):          75231538  00000000  
I/DEBUG   (  317):          7523153c  400e922b  /system/lib/libc.so (_fwalk+34)
I/DEBUG   (  317):          75231540  400e84d5  /system/lib/libc.so (_cleanup)
I/DEBUG   (  317):          75231544  7523155c  [stack:6462]
I/DEBUG   (  317):          75231548  757d89d4  
I/DEBUG   (  317):          7523154c  00000002  
I/DEBUG   (  317):          75231550  df0027ad  
I/DEBUG   (  317):          75231554  00000000  
I/DEBUG   (  317):     #00  75231558  7917c8bc  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          7523155c  fffffbdf  
I/DEBUG   (  317):          75231560  401101c4  /system/lib/libc.so
I/DEBUG   (  317):          75231564  00000000  
I/DEBUG   (  317):          75231568  401101c4  /system/lib/libc.so
I/DEBUG   (  317):          7523156c  00000000  
I/DEBUG   (  317):          75231570  40113da0  
I/DEBUG   (  317):          75231574  791a8af4  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          75231578  740c1ad0  /data/app-lib/org.RUTorrent.example-1/libpython2.7.so
I/DEBUG   (  317):          7523157c  400e4760  /system/lib/libc.so (__pthread_clone)
I/DEBUG   (  317):     #01  75231580  0000193e  
I/DEBUG   (  317):          75231584  78f3b5b7  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so (Py_FatalError+46)
I/DEBUG   (  317):     #02  75231588  00000000  
I/DEBUG   (  317):          7523158c  7917bfb4  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          75231590  791a8af4  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          75231594  78f38b3b  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so (PyThreadState_Get+26)
I/DEBUG   (  317):          75231598  791a8af4  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          7523159c  78f35877  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so (Py_InitModule4+30)
I/DEBUG   (  317):          752315a0  000024f0  
I/DEBUG   (  317):          752315a4  00000000  
I/DEBUG   (  317):          752315a8  5391ba4e  /dev/ashmem/dalvik-heap (deleted)
I/DEBUG   (  317):          752315ac  03d43237  
I/DEBUG   (  317):          752315b0  00000000  
I/DEBUG   (  317):          752315b4  00000000  
I/DEBUG   (  317):          752315b8  791a9014  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so
I/DEBUG   (  317):          752315bc  7909eeb7  /data/data/org.RUTorrent.example/files/lib/python2.7/site-packages/libtorrent.so

我不确定这出错的地方。这是Boost.Python内部的错误吗?或者它是Python库中的错误?有什么我可以尝试调试此错误?它是在启动应用程序时发生的,因为导入libtorrent是第一行。

0 个答案:

没有答案