那些年遇到的問題--Android P 對http請求限制

起因

在新建工程集成我們自己的aar時,在註冊時,明明網絡通常,卻一直返回網絡不通的錯誤碼,換了原來的舊工程卻不會有這個問題。用源碼跑了幾遍,aar的集成方式也過了幾遍,甚至把工程都給同事試了,結果還是一樣,百思不得其解。

解決方式

在確認了各種方式都沒有問題,依然不能註冊成功以後,想起了Android P(9.0) http網絡請求的問題這篇博客,然後試了一下,欸,終於可以了。。。
後來看了下新工程默認的targetSdkVersion是29,而aar裏面的網絡請求用的是http。
採用的解決方式如下(以下內容來源於Android P(9.0) http網絡請求的問題
1.在 res 下新增一個 xml 目錄
2.在xml目錄下,創建一個名爲:network_security_config.xml 文件(名字自定) ,內容如下,大概意思就是允許開啓http請求:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>

 <base-config cleartextTrafficPermitted="true" />

</network-security-config>

3.在app的AndroidManifest.xml文件下的application標籤增加以下屬性:

<application
...
 android:networkSecurityConfig="@xml/network_security_config"
...
/>
  • 如果項目中使用了http請求,並且項目的targetSdkVersion>=28,則需要採用上面的處理方式,如果targetSdkVersion<28,則可以不用處理。

相關閱讀

1.Android P(9.0) http網絡請求的問題

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