ImportError:dlopen失败:有错误的ELF魔法

Vai*_*han 6 python android

问题:

ImportError: dlopen failed: "/data/python/lib/python2.7/_io.so" has bad ELF magic
Run Code Online (Sandbox Code Playgroud)

背景:我正在研究一些支持python解释器的内部android apk.我必须使用该apk来运行一些测试用例,这些测试用例被推入/ sdcards/scripts/XXXX位置(python文件/包所在的位置).现在,当运行测试用例时,导入io模块,调用_io.so模块.这个_io.so模块不在默认带有APK的python中.所以我想我可能会在我的mac上找到_io.so文件,并将adb推送到/data/python/lib/python2.7/lib-dynload位置,其中所有其他.so文件都位于此处.我认为将_io.so文件推送到此位置将解决问题,但事实并非如此.有人可以让我知道发生了什么,根本原因是什么,以便解决这个问题.

root@condor_umts:/data/python/lib/python2.7/lib-dynload # ls -l              
-rw------- root     root        53660 2014-05-30 12:12 _bisect.so
-rw------- root     root       180956 2014-05-30 12:12 _codecs_cn.so
-rw------- root     root       191196 2014-05-30 12:12 _codecs_hk.so
-rw------- root     root        81064 2014-05-30 12:12 _codecs_iso2022.so
-rw------- root     root       285092 2014-05-30 12:12 _codecs_jp.so
-rw------- root     root       175016 2014-05-30 12:12 _codecs_kr.so
-rw------- root     root       145036 2014-05-30 12:12 _codecs_tw.so
-rw------- root     root        96396 2014-05-30 12:12 _collections.so
-rw------- root     root        86588 2014-05-30 12:12 _csv.so
Run Code Online (Sandbox Code Playgroud)

为简洁env截断:

Python 2.7.3 (default, Apr 15 2014, 13:44:15) 
[GCC 4.6 20120106 (prerelease)] on linux-armv7l
Run Code Online (Sandbox Code Playgroud)

Jia*_* YD 2

您不能将 mac-x86 so 文件用于 android(支持 linux-arm)。

  • 我认为这就是答案,因为他问“有人可以告诉我发生了什么以及根本原因是什么”。 (4认同)