1. 程式人生 > >ionic 之cordova 極光推送jpush和百度定位外掛結合使用之定位失效問題解決辦法

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之下。


親試  ,這樣是沒有衝突的