【问题标题】:ImportError: dlopen failed: has bad ELF magicImportError:dlopen 失败:ELF 魔法不好
【发布时间】:2016-01-19 17:09:15
【问题描述】:

问题:

ImportError: dlopen failed: "/data/python/lib/python2.7/_io.so" has bad ELF magic

背景: 我正在开发一些支持 python 解释器的内部 android apk。我必须使用该 apk 来运行一些测试用例,这些测试用例被压入 /sdcards/scripts/XXXX 位置(python 文件/包所在的同一位置)。现在,在运行测试用例时,会导入调用 _io.so 模块的 io 模块。这个 _io.so 模块不在 APK 中默认提供的 python 中。所以我想我可能会在我的 mac 上找到 _io.so 文件并将 adb push 到所有其他 .so 文件所在的 /data/python/lib/python2.7/lib-dynload 位置。我认为将 _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

为简洁起见截断 环境:

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

【问题讨论】:

    标签: android python


    【解决方案1】:

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

    【讨论】:

    • 这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review
    • 我认为这就是答案,因为他问了Can some one give me an idea what is going on and what is the root cause
    猜你喜欢
    • 1970-01-01
    • 2016-12-05
    • 2021-12-14
    • 2012-08-08
    • 2018-07-18
    • 2017-12-16
    • 2011-10-31
    • 2021-08-22
    • 2021-08-17
    相关资源
    最近更新 更多