日期:2024-01-12 浏览次数:140 次
这个错误是因为 Android 9(API 级别 28)及更高版本引入了网络安全性政策,要求应用程序默认使用加密连接(HTTPS),不再允许明文(HTTP)通信。如果你的应用在使用明文通信,就会出现这个 java.net.UnknownServiceException
异常。
有几种解决方法:
使用 HTTPS 进行通信:
修改网络安全配置:
如果你暂时需要在开发或测试阶段使用明文通信,可以通过在 res/xml/network_security_config.xml
中定义网络安全配置,允许明文通信。
在 AndroidManifest.xml
文件中的 <application>
元素内,添加 android:networkSecurityConfig
属性,并指向你的配置文件,例如:
xmlCopy code
<application android:networkSecurityConfig="@xml/network_security_config" ...> ... </application>
在 res/xml/network_security_config.xml
文件中,可以添加如下内容:
xmlCopy code
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <!-- You can include your custom trust anchors here --> <certificates src="system" /> </trust-anchors> </base-config> </network-security-config>
请注意,这仅仅是为了调试或测试阶段使用,不建议在生产环境中使用明文通信。
请记住,将网络通信切换到 HTTPS 是一个更加安全和推荐的做法。