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

时间:2013-03-28 11:23:00

标签: android libspotify

我一直在尝试在github上关注this示例以获得基本的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等有关。任何人都可以解释这个问题吗?< / p>

3 个答案:

答案 0 :(得分:2)

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

$ file libspotify.so

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

答案 1 :(得分:1)

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

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

修改

我找到了一个已正确提取的here的libspotify.so文件版本。

答案 2 :(得分:1)

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

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

希望这有助于另一个疲惫的灵魂,至少。 :)