You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native WebView Android加载失败求助:net::ERR_NAME_NOT_RESOLVED

React Native WebView在Android端加载YouTube视频失败,报错net::ERR_NAME_NOT_RESOLVED

问题详情

我用React Native开发,使用react-native-webview组件加载YouTube视频,iOS端运行正常,但Android端无法加载,终端和模拟器报错如下:

终端报错:

Encountered an error loading page {"canGoBack": false, "canGoForward": false, "code": -2, "description": "net::ERR_NAME_NOT_RESOLVED", "loading": false, "target": 789, "title": "", "url": "https://www.youtube.com/watch?v=QzqmlgnSE38"}

模拟器显示:

Error loading page Domain: undefined Error code: -2 Description: net::ERR_NAME_NOT_RESOLVED

我的代码:

import React, { useEffect } from 'react'
import { Text, SafeAreaView } from 'react-native';
import { useNavigation } from '@react-navigation/native';
import WebView from 'react-native-webview';
import { styles } from '../theme/appTheme';

export const AtmungBienenflugScreen = () => {

    const navigator = useNavigation();

    useEffect( () => {
      navigator.setOptions({
        title:'',
        headerTintColor: 'black',
      })
    })

    return (
      <SafeAreaView style={styles.container}>
          <Text style={ styles.titleLekt}>2.4 Bienenflug</Text>

          <WebView 
          style= { styles.video }
          autoPlay
          playsInline
          source={{ uri: 'https://www.youtube.com/watch?v=QzqmlgnSE38'  }} />
      </SafeAreaView>
    )
  }

问题原因与解决方法

net::ERR_NAME_NOT_RESOLVED本质是域名解析失败,Android端出现这个问题通常有以下几种解决路径:

1. 检查Android网络权限

确保项目已添加网络访问权限,打开android/app/src/main/AndroidManifest.xml,确认<manifest>标签内存在以下代码:

<uses-permission android:name="android.permission.INTERNET" />

如果没有,直接添加到该位置(不要放在<application>标签内部)。

2. 修复模拟器网络异常

  • 重启Android模拟器:很多时候模拟器网络连接会出现临时异常,重启即可恢复。
  • 切换网络环境:打开模拟器设置→网络与互联网,确认已连接可用网络,或者切换到手机热点等其他网络。
  • 验证网络可用性:在模拟器内置浏览器中访问其他网站(比如google.com),确认网络本身是否正常,排除DNS缓存问题。

3. 改用YouTube嵌入格式

直接加载YouTube的watch页面在Android WebView中存在兼容性问题,建议替换为嵌入链接格式:
将原URL https://www.youtube.com/watch?v=QzqmlgnSE38 修改为 https://www.youtube.com/embed/QzqmlgnSE38,调整后的WebView代码:

<WebView 
  style={ styles.video }
  autoPlay
  playsInline
  source={{ uri: 'https://www.youtube.com/embed/QzqmlgnSE38'  }} 
  allowsInlineMediaPlayback={true} // 确保跨平台内联播放支持
/>

嵌入格式专门为网页内嵌场景设计,能避免原页面的跳转和权限限制问题。

4. 更新Android系统WebView版本

过旧的WebView版本可能不支持现代网页特性,在设备设置→应用→Android System WebView中检查版本,更新到最新版后重试。

内容的提问来源于stack exchange,提问作者Ana Gonzalez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 19:23:11