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



我一直试图在github上遵循此示例以获得基本的spotify实现工作,我遵循了设置步骤,安装了所有所需的库等,但在本地构建阶段不断获得以下错误。

**** Build of configuration Default for project LoginActivity ****
c:Android-ndkandroid-ndk-r8endk-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的一个版本。所以文件在这里被正确提取

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

至少那是我刚刚做的把我带到这里的事。后者需要重命名为查找名称(libspotify.so),然后NDK就可以了。

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

相关内容

  • 没有找到相关文章

最新更新