1. 程式人生 > >android -------- java.net.UnknownServiceException

android -------- java.net.UnknownServiceException

 最近升級了Android的API版本時 ,導致我的網路請求失敗了,

出現了這個錯誤 java.net.UnknownServiceException,

 

這個錯誤,我在網上查到這個主要是由於,我們的OkHttp3會預設使用密文傳輸,而我們的程式碼中使用Http協議,也就是使用明文傳輸,所以OkHttp3會主動的報錯,然後阻止執行緒的執行。所以我們現在就是要修改配置檔案,使OkHttp3允許使用明文傳輸,或者我們直接使用Https協議。

 

解決方法:

在 res 下新建一個 xml 目錄,然後建立一個名為:network_security_config.xml 檔案 

 

該檔案內容如下:

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

    <base-config cleartextTrafficPermitted="true" />

</network-security-config>
然後在 AndroidManifest.xml application 標籤內應用上面的xml配置:
 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:theme="@style/AppTheme"
        >
</application>

這樣就歐克了

官方文件: https://developer.android.com/training/articles/security-config