1. 程式人生 > 實用技巧 >Android-SDK接入-YSDK(應用寶1.7.0)

Android-SDK接入-YSDK(應用寶1.7.0)

SDK接入-YSDK(應用寶1.7.0)-2021-01-07

   大家好,近期在做多渠道打包平臺,會定期遇到第三方SDK升級,所以很被動的是,我們也要跟隨他們的步伐,及時升級。否則將面臨第三方開發者站無法過審的問題。之前我整理了 CodeReview 系列的部落格,今天開始會抽時間整理第三方SDK接入的系列問題。當然,CodeReview系列的還會進行下去。

應用寶SDK的接入其實還是很繁瑣的,各種引數的配置,還需要注意區分沙盒環境的配置和現網環境的配置的不同區別。今天我分享幾個典型的問題:

1.沙盒環境和現網環境最容易出現的錯誤:

MidasPay 的沙盒環境下的 appKey 其實和 qqAppKey的值是相同的,但本質上者倆個東西是獨立的,所以在切換到現網環境後,一定要注意,千萬別把動qqAppKey。

2.UserLoginRet flag:3100;get login ret failed, on login recrod in db!

其實3100錯誤在 YSDK 的官網解釋是本地票據不可用,引導使用者重新登入。同時也給出了檢測方案,比如引數核對,包名是否一致、簽名是否一致等等。但是大多情況下,大家應該不會出像這些問題。讓我們來看下詳細的日誌:

  異常詳細資訊:

2021-01-06 20:56:03.623 8897-8897/? D/YSDK_DOCTOR: OK-notifyWakeupAsync
2021-01-06 20:56:03.623 8897-8897/? D/YSDK UserModule: mUserListener.OnWakeupNotify
2021-01-06 20:56:03.623 8897-8897/? D/YSDK UserModule: notifyWakeupAsync finished 2021-01-06 20:56:14.992 8897-8971/? D/YSDK b$a.run: TaskDispatcher run 2021-01-06 20:56:14.993 8897-8971/? D/YSDKDuration: Game time Duration :120 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WX OK-getLoginRecord 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: getWXUserLoginRet
2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: UserLoginRet flag:3100;get login ret failed, on login recrod in db! 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WXUserLoginRet2UserLoginRet 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WX OK-getLoginRecord 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: getWXUserLoginRet 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: UserLoginRet flag:3100;get login ret failed, on login recrod in db! 2021-01-06 20:56:14.993 8897-8971/? D/YSDK_USER_WX: WXUserLoginRet2UserLoginRet

上面的異常資訊發生在微信調起後,然後點選授權後,發現app並沒有收到 回撥,也就是 YSDKOnLoginNotify 方法沒有被回撥。

面對第三方SDK接入的問題分析,我有下一幾種思路:

1.引數核對。(一定要仔細核對引數是否正確)

2.AndroidManifest.xml配置核對。(尤其需要注意每次的變革文件,要仔細注意其中的新增點和刪除點,往往這些是我們升級或者接入SDK時常出現的問題的所在點。)

3.Assets配置和res檔案是否缺失。

4.libs依賴是否缺失,當然這個分eclipse接入和gradle接入。

我們再回到上面的異常:

這個異常只會出現在微信登入時,但是QQ登入授權一切正常。所以直觀的想,是不是微信ysdk回撥用的時候有問題,但是嘗試ysdk demo後發現時正常的。所以還是我們接入的問題。順著我的思路來,引數檢查沒問題,然後重點關注AndroidManifest.xml的配置。

解決方案:

仔細檢查 AndroidManifest.xml,發現 YSDK1.7.0 新增加了

<meta-dataandroid:name="MAIN_ACTIVITY"android:value="${mainActivity}"/>

配置節點,然後問題就出現在這裡,${mainActivity} 一定要配置成 app的主activity。此處配置節點錯誤,直接回導致微信登入授權後,無回撥。

備註:

其實如果直接接入YSDK的情況下,應該會很少遇到上面的問題,但是我們的場景比較複雜,我們時聚合SDK,然後通過打包平臺來對需要打包的app進行反編譯,然後整合第三方SDK(如應用寶)的資源,jar、assests等等。整合的方式是通過橋接層來完成的,所以,這個過程中,首先是會通過demo驗證。上述問題的出現就是因為,我們的demo 中的MAIN_ACTIVITY寫死了,所以demo 的 QQ和微信都是登入正常的。 但是用正式的 app出ysdk渠道包時,就出現了上面的問題。

好了,今天就寫道這裡,我是百靈。記錄一下,希望能夠幫助到大家。這個問題我也在網上查了很多資料,但無論時YSDK官網還是其他網站都沒有找到結果。