ionic 之cordova 极光推送jpush和百度定位插件结合使用之定位失效问题解决办法

之前项目已经装了cordova的百度定位插件,曾经出现过定位失败问题,那是由于项目上传svn再checkout下来的话会丢失.so文件。只需把.so文件补齐就OK了。但是最近由于项目需要推送消息功能,查了下,使用了cordova集合的极光推送jpush插件,add了以后,就出现了我百思不得其解的bug,定位失败。

首先,我想着之前的经验,去检查是否.so文件丢失,结果并没有,那么问题来了,哪错了呢?

想着最近切了下cordova版本,从7.1.0升到8.0.0,是否这个原因? 重新切回去,打包,依然失败..

配置文件什么的全部检查一遍,没问题,懵~ remove掉之前的,重新add,再次打包,接着失败..

细想了下,没安装jpush插件时,没有问题,直觉告诉我,可能冲突了,因为jpush也有自己的.so文件,而且都在libs文件夹下。

抱着试试的心态,重新checkout一份没有jpush插件的项目。打包,定位没问题,然后装上插件,打包,定位失败。豁然开朗!

怎么解决?没有思路,问度娘。根据别人的经验,自己知道是因为jpush的64位.so文件引起,但是别人的解决方式,ionic中不适用。我看了下libs文件夹下arm开头的文件夹多了个arm64-v8a 的文件,删掉,重新打包,OK。问题解决!



追加一点:

由于前段时间极光推送插件升级了(3.4.0以上的),

Github上这样说的:

注意:插件从 v3.4.0 开始支持 cordova-android 7.0.0,因 cordova-android 7.0.0 修改了 Android 项目结构,因此不兼容之前的版本,升级前请务必注意。

如果需要安装之前版本的插件,请先安装 v1.2.0 以下版本(建议安装 v1.1.12)的 cordova-plugin-jcore,再安装旧版本插件(比如 v3.3.2),否则运行会报错。


新安装的目录是这样的:


其实 我试了3.3.2版本也是这样 ,只不过3.4.0版本还多个app文件夹,下面是插件的java代码,可以试着把main文件夹移到

src之下。


亲试  ,这样是没有冲突的


猜你喜欢

转载自blog.csdn.net/m0_38050352/article/details/79033109