繁体   English   中英

无法识别NDK预建的共享库文件格式

[英]NDK prebuilt shared library file format not recognized

我一直试图在github上关注这个示例以获得基本的spotify实现工作,我已经按照设置步骤,安装了所有必需的库等,但在本机构建阶段继续收到以下错误。

**** Build of configuration Default for project LoginActivity ****

c:\Android-ndk\android-ndk-r8e\ndk-build.cmd NDK_NO_WARNINGS=1 all 
Install        : libspotify.so => libs/armeabi/libspotify.so
c:/Android-ndk/android-ndk-r8e/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-strip:./libs/armeabi/libspotify.so: File format not recognized
make: *** [libs/armeabi/libspotify.so] Error 1
make: *** Deleting file `libs/armeabi/libspotify.so'

**** Build Finished ****

我下载了特定于android的库,然后尝试了各种Linux ARM库组合,看看会发生什么,结果总是一样的。 从目录中删除libspotify.so ,构建因预期失败,因为无法找到该文件,因此我知道该脚本正在尝试处理该文件。

据我所知,我已经按照设置进行了说明,我目前的猜测是问题与运行64位版本的eclipse / java等有关。有谁可以解决这个问题?

您需要找出此文件的可编译目标。 如果使用linux,请运行以下命令:

$ file libspotify.so

您将看到它是否可以使用armeabix86进行编译。 然后,在application.mk ,您需要将APP_ABI设置为armeabiAPP_ABI:X86

事实证明,此问题是由.so文件的损坏存档引起的。

当我重新下载它时,它工作正常。 谢谢你的帮助。

编辑

我找到了一个libspotify.so文件的版本,该文件已在此处正确提取。

我相信你可能不小心提取了libspotify.so (21 bytes) ,它只是共享库libspotify.so.12.1.51 (1,961,644 bytes)的Unix符号链接。

至少那是我刚才所做的,这使我在这里。 后者需要重命名为查找名称(libspotify.so),然后NDK才能正常运行。

希望这至少可以帮助另一个疲惫的灵魂。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM