android: 报错: CLEARTEXT communication to site not permitted by network security policy

一,报错信息:

FATAL EXCEPTION: main
      Process: com.example.okdemo2, PID: 3158
      java.net.UnknownServiceException: CLEARTEXT communication to www.testit.net not permitted by network security policy
      at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:164)
      at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)
      at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
      at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)
      at okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)
      at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
      at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
      at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
      at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
      at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)

二,原因:

这个错误通常出现在Android 9.0(API 28)及以上版本中,
当应用尝试使用HTTP明文传输时会被系统阻止,
这里的报错是因为代码中访问了http打头而不是https打头的主机地址

三,解决:

1,改用https访问就可以了
2,临时解决方法:

编辑AndroidManifest.xml,

增加一行

android:usesCleartextTraffic="true"

 

posted @ 2025-09-06 22:07  刘宏缔的架构森林  阅读(60)  评论(0)    收藏  举报