[Unity]騰訊SDK踩坑之路(1)--MSDK Android9巨坑

        最近一直忙,主要是在接大廠的MSDK, 因此學習的時間就變少了,更不要說寫博客了。但是最近一直在踩坑,覺得還是有必要記錄下來,避免再次出錯。其實有些巨坑很多都是Android9系統的問題。
        1. 首先是簽名的問題,因爲打包時候沒有設置keystore,所以生成的Android簽名是有問題的,導致在寫demo測試微信和QQ登錄的時候一直失敗,好在大廠的技術支持給力,找到原因就好解決。但這是我的鍋,爲了避免再犯這種低級錯誤,我專門寫了個獲取簽名的工具
        2. 自動配置AndroidManifest問題。爲了方便快速接入MSDK,用的是Unity SDK插件版本。因此AndroidManifest配置都是自動配置的,理論上應該是沒有什麼問題的,並且打包結束的時候大廠還有個檢查配置的工作。然後仔細看了AndroidManifest配置文件,發現QQAppId沒有成功修改,發現大廠自動配置代碼裏有個小bug,順手修復。
        3. 屏幕方向問題。這個是比較坑爹的問題,這邊所有測試機都通過了,模擬器上也沒問題,突然有一臺華爲機子微信和QQ登錄會卡死,其他2部華爲機子沒問題,拿來調試發現,而且之前寫的Java層手機異常也捕獲到了:


        這個問題竟然會導致Crash,那沒辦法,有問題就刪除,刪除AndroidManifest中的WXEntryActivity和AssistActivity的android:screenOrientation="portrait"屬性,OK!沒問題,接着測試又反饋說有一定機率打開遊戲的時候屏幕旋轉了3次或者倒着,再仔細檢查發現MGameActivity的朝向是android:screenOrientation="sensor",因爲我們遊戲是橫屏的,將之修改成android:screenOrientation="sensorLandscape",OK,又順利解決了一個問題。
        4. Android9系統開始表演了:接下來就是巨坑的地方,高高興興打包發給大廠運營,回家休息。沒過多久,反饋說華爲一打開就閃退。問運營要了手機型號和Android系統版本。本打算好好休息的我,只好遠程公司電腦,下載包,安裝,測試,沒問題呀,換模擬器試試,也沒問題。腦裏各種可能性都想過了,就懷疑是不是Android9系統的問題。只好第二天到公司就急求一部Android9系統的測試機,因爲所有測試機,沒有一部是Android9,最坑的是崩潰的機子是華爲Mate 10 Pro,是Android9的,這邊有一部華爲Mate 10是Android8的,升不上去,而且測試是沒有問題的,沒有問題的,沒有問題的,重要的事要說3遍。後來終於搞到一部Android9的測試機,是小米MIX 2S型號,調試,閃退,報錯信息:


        反饋給大廠技術支持,提供了一個解決方案:在AndroidManifest文件裏面加這個配置
        <uses-library android:name="org.apache.http.legacy" android:required="false"/>
        OK,閃退問題解決了。
        5. 以爲這樣就完了,太天真了。接下來更崩潰的是,手機上沒有微信和QQ的app話,會導致點擊微信登錄不會彈出掃碼登錄界面,點擊QQ登錄不會彈出下載QQ界面,沒錯還是Android9的問題,之前手上沒有這種系統,就沒有仔細測到,拿到手上就仔細測了下,發現有這個問題,反饋給大廠技術支持,剛開始以爲是其他SDK的權限和Jar包的問題,刪除測試,還是有這個bug,再寫個demo測試,沒有問題,然後懷疑之前的修改導致的,把遊戲中修改過的配置一個一個添加上demo中,還是沒問題。只好一行一行來看log日誌,看到這個:


        搜了下Cleartext traffic not permitted,找到一個解決方案,大廠技術支持也給了個方案。看了下其實是同一個解決方案:自己找到的有點繁瑣,要再寫一個xml文件,換成最簡單的測試,OK,問題解決。

        只需要添加:

        android:usesCleartextTraffic="true"
        這些都是目前遇到的問題,如果還有其他問題,會在繼續更新。

參考:

解決方案1

解決方案2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章