关闭

[Phonegap+Sencha Touch] 移动开发56 安卓要注意不同CPU指令集的第三方.so库文件的引用

标签: x86armandroidphonegapcordova
703人阅读 评论(0) 收藏 举报
分类:

公司有个测试人员的手机是联想的机器,x86的cpu。

公司App用到了百度云推送、百度地图和百度定位,安卓项目中分别引用了这三个SDk的.so库文件

注:.so库文件,C++编写的,比java运行速度快的库文件,类似于windows的DLL


百度云推送、百度地图和百度定位 分别提供了如下几种CPU指令集的.so库文件:

  


应用到安卓项目中之后,cpu是x86的手机使用apk时,就报错了:

library "libbdpush_V2_3.so" not found

意思是找不到推送的.so库。



经过不断试验得到了下面的结论:

1、x86芯片兼容arm的指令集 (只不过效率低一点)。这是网上的说法

2、安卓项目的libs下一旦出现x86的目录,apk运行的时候就会去加载x86对应的库,但是如果此时x86文件夹没有将so放进来,则会遇到报错


解决办法:

1、我们可以把百度云推送的armeabi目录下的.so拷贝一份到x86文件夹中,然后打包apk

2、可以不引用百度地图和百度定位的x86的.so,也就是不要引用任何x86的.so库


是去掉还是补上,得看自己的实际情况决定。

我觉得毕竟x86的手机没有arm的多,而且去掉x86的库文件,能减少apk的体积,所以我还是选择去掉。

不过并不是所有armeabi的so库都能被x86兼容的哦!


不知道x86_64可以兼容什么指令集,没设备没法尝试,网上也没查到。





欢迎加入Sencha Touch + Phonegap交流群

1群:194182999 (满)

2群:419834979

共同学习交流(博主QQ:479858761


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:297063次
    • 积分:4073
    • 等级:
    • 排名:第7599名
    • 原创:103篇
    • 转载:26篇
    • 译文:19篇
    • 评论:81条
    联系我

    QQ上问我的时候,请描述清楚你的问题:

    1、环境与背景(如ExtJS6.2)
    2、步骤(关键代码或者截图)
    3、预期现象
    4、实际现象
    5、最好有一个在线demo(如JSFiddleSencha Fiddle

    给我打赏
    QQ 微信 支付宝
    最新评论