我一直试图在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
您将看到它是否可以用armeabi
或x86
编译。然后,在application.mk
中,您需要将APP_ABI
设置为armeabi
或APP_ABI:X86
。
原来这个问题是由.so文件的存档损坏引起的。
当我重新下载它,它工作正常。谢谢你的帮助。
编辑
我找到了libspotify的一个版本。所以文件在这里被正确提取
我相信您可能不小心提取了libspotify.so (21 bytes)
,它只是一个到共享库libspotify.so.12.1.51 (1,961,644 bytes)
的Unix符号链接。
至少那是我刚刚做的把我带到这里的事。后者需要重命名为查找名称(libspotify.so),然后NDK就可以了。
希望这至少能帮助另一个疲惫的灵魂。:)