> 技术文档 > android模拟器手机打开本地网页

android模拟器手机打开本地网页


本地电脑网页代码

const express = require(\'express\');const path = require(\'path\');const app = express();const port = 8080;app.use(express.static(path.join(__dirname, \'public\')));app.get(\'/\', (req, res) => { res.sendFile(path.join(__dirname, \'public\', \'index.html\'));});app.listen(port, \'0.0.0.0\', () => { console.log(`Server running at http://localhost:${port}`);});

\\ok\\public

index.html

   My Local Web Server 

Welcome to My Local Server!

This page is hosted locally using Node.js and Express.

MainActivity.java代码

package com.example.openwifi;import android.os.Bundle;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity { WebView webView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); webView = new WebView(this); setContentView(webView); webView.setWebViewClient(new WebViewClient()); // 内部加载网页 WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); // 如需要JS // 模拟器访问本机服务地址(10.0.2.2 是 host 机器) webView.loadUrl(\"http://10.0.2.2:8080\"); }}

这个错误是因为从 Android 9.0(API 级别 28) 开始,默认不允许通过 HTTP 明文协议访问网络地址(只允许 HTTPS),所以你访问 http://10.0.2.2:8080/ 会被系统拒绝,提示:

net::ERR_CLEARTEXT_NOT_PERMITTED

✅ 解决办法:允许明文 HTTP 请求

你需要修改 AndroidManifest.xml 和配置 network_security_config.xml


✅ 步骤一:创建网络安全配置文件

  1. res/xml 目录下创建一个新文件:network_security_config.xml
    (如果没有 xml 文件夹,可以手动创建)

内容如下:

  10.0.2.2 

✅ 步骤二:修改 AndroidManifest.xml

标签中添加:

android:networkSecurityConfig=\"@xml/network_security_config\"

完整示例:

 ...

✅ 补充说明

  • 10.0.2.2 是 Android 模拟器访问主机(你电脑)的特殊 IP。

  • 如果你使用的是 HTTPS,不会出现此问题。

  • 如果你访问的是其他 IP 或域名,请将 改成相应地址。


配置完成后重新运行你的 Android App,就可以通过 http://10.0.2.2:8080/ 成功访问本地电脑服务了。