![](/img/trans.png)
[英]Android : link prebuilt shared library (.so) within jar file in 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
您将看到它是否可以使用armeabi
或x86
进行编译。 然后,在application.mk
,您需要将APP_ABI
设置为armeabi
或APP_ABI:X86
。
我相信你可能不小心提取了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.