UM集成QQ分享閃退問題

最近公司再作新項目,需要用到QQ分享和登錄授權。
之前用的都是jar包然後引入項目,我就去嘗試了gradle裏直接添加依賴的方法。

    implementation 'com.umeng.umsdk:analytics:8.0.0'
    implementation 'com.umeng.umsdk:common:2.0.0'
    implementation 'com.umeng.umsdk:utdid:1.1.5.3'
    implementation 'com.umeng.umsdk:share-qq:7.0.2'
    implementation 'com.umeng.umsdk:share-core:7.0.2'
    implementation 'com.umeng.umsdk:share-wx:7.0.2'

開始的時候忘記添加share core庫 導致沒辦法設置appid這個是要注意的。
然後在項目的application下 使用

 UMConfigure.init(this, "xxx", "xxx" + agent_id, UMConfigure.DEVICE_TYPE_PHONE, "");
        PlatformConfig.setQQZone("xxx", "xxx");
        PlatformConfig.setQQFileProvider("com.xxx.xxx.providers.ImageFileProvider");
        PlatformConfig.setWeixin("xxx", "xxx");

設置appid,密鑰等。

在我自己的設備上 (魅族16 8.1)運行並沒錯誤,在同事手機上華爲榮耀9 9.1上運行就報錯,點了QQ分享後會閃退
查日誌發現主要是這兩個報錯。
ClassNotFoundException: Didn’t find class “org.apache.http.conn.scheme.SchemeRegistry”
java.lang.ClassNotFoundException: com.tencent.stat.StatConfig

出現該問題的主要原因是
Apache HTTP 客戶端棄用
在 Android 6.0 中,我們取消了對 Apache HTTP 客戶端的支持。 從 Android 9 開始,默認情況下該內容庫已從 bootclasspath 中移除且不可用於應用。
官方文檔:https://developer.android.google.cn/about/versions/pie/android-9.0-changes-28

解決方法在清單文件中設置 uses-library

<application.....

	<uses-library android:name="org.apache.http.legacy" android:required="false"/>
	<activity..../>
 </application>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章