You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Xamarin Forms Android应用突然无法联网,提示net::ERR_NAME_NOT_RESOLVED

Xamarin Forms Android应用突然无法联网,提示net::ERR_NAME_NOT_RESOLVED

看起来你的应用突然连不上网还报net::ERR_NAME_NOT_RESOLVED,我先从你贴的AndroidManifest片段入手,梳理几个最可能的问题:

  • 首先检查网络权限是否缺失:你提供的Manifest里完全没看到<uses-permission android:name="android.permission.INTERNET" />这个关键声明!Android系统要求所有需要联网的应用,必须在Manifest的根节点(和<application>标签同级)添加这个权限。没有它的话,系统会直接拦截所有网络请求,这大概率是导致问题的核心原因。

  • Android 9+的明文网络限制:你的targetSdkVersion是33(属于Android 13),如果你的应用访问的是HTTP而非HTTPS接口,系统默认会禁止明文流量,这也可能引发域名解析相关的报错。解决办法是在<application>标签里加上android:usesCleartextTraffic="true",或者更安全的方式是配置network_security_config.xml来允许特定域名的明文访问。

  • 排查设备网络环境net::ERR_NAME_NOT_RESOLVED本身是域名解析失败的提示,咱可以先排除是不是设备网络的问题。比如用手机自带浏览器打开你应用要访问的接口地址,看看能不能正常加载。如果浏览器也打不开,那可能是DNS设置错误、局域网限制或者目标服务器挂了,和应用本身无关。

给你贴个修改后的Manifest示例,把关键权限和配置补上:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.jamessuske.registrations">
    <!-- 添加联网权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="33" />
    <!-- 允许明文流量(如果访问HTTP接口的话) -->
    <application android:label="Registrations.Android" android:theme="@style/MainTheme" android:usesCleartextTraffic="true">
        <activity android:name=".SettingsActivity" android:label="Settings" android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.APPLICATION_PREFERENCES" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <!-- 其他组件代码... -->
    </application>
</manifest>

建议你先把网络权限加上,重新打包测试,要是还不行再排查明文流量和网络环境的问题~

备注:内容来源于stack exchange,提问作者user979331

火山引擎 最新活动