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

Ionic 3 Android设备Livereload失效问题求助

解决Ionic 3 Livereload连接超时(net::ERR_CONNECTION_TIMED_OUT)的方案

我来帮你排查这个livereload失效的问题,你已经尝试了设置超时时间、添加防火墙规则和网络权限,但还是遇到了闪屏停留和连接超时的报错,结合你的环境(Ionic 3.9.5 + Cordova Android 7.1.4 + WebView 3.1.2),咱们从以下几个方向入手解决:

1. 先确认设备和电脑的网络连通性

这是最基础但容易忽略的点:

  • 确保你的Android设备和开发电脑连接的是同一个WiFi网络
  • 打开电脑的命令提示符,执行ipconfig找到你的本地IP(比如你提到的192.168.0.102),然后在设备的浏览器里直接访问http://192.168.0.102:8100。如果浏览器也打不开,说明是网络层面的问题,比如路由器开启了AP隔离,或者WiFi本身限制了设备间通信,得先解决这个。

2. 给WebView配置允许访问的规则

你用的cordova-plugin-ionic-webview 3.x版本对跨域和本地访问限制比较严格,需要在config.xml里明确添加允许导航的规则:

<!-- 允许访问本地IP的8100和35729端口 -->
<allow-navigation href="http://192.168.0.102:8100/*" />
<allow-navigation href="http://192.168.0.102:35729/*" />
<!-- 也可以放宽到同网段所有IP,方便换IP时不用改配置 -->
<allow-navigation href="http://192.168.0.*:*/*" />

同时,在src/index.html里更新Content-Security-Policy的meta标签,允许加载本地开发服务器的资源:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' http://192.168.0.102:8100 http://192.168.0.102:35729 data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">

3. 解决Android 7+的明文HTTP限制

Android 7.0及以上默认禁止明文HTTP请求,而livereload用的是HTTP协议,这很可能是导致超时的关键原因:

  1. 在项目的platforms/android/res/xml目录下(如果没有xml文件夹就新建一个),创建network_security_config.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <!-- 允许访问你的本地IP -->
        <domain includeSubdomains="true">192.168.0.102</domain>
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>
  1. 打开platforms/android/AndroidManifest.xml,在<application>标签里添加这个配置的引用:
<application
    ...
    android:networkSecurityConfig="@xml/network_security_config">

4. 清理缓存并指定IP启动livereload

有时候项目缓存会导致奇怪的问题,先清理再重新构建:

# 清理Android平台的缓存
ionic cordova clean android
# 重新构建debug版本
ionic cordova build android --debug
# 指定你的本地IP启动livereload,而不是默认的0.0.0.0
ionic cordova run android --livereload --consolelogs --address 192.168.0.102

5. 检查端口是否被占用

确认8100、35729、53703这几个端口没有被其他程序占用:

  • 在Windows命令提示符里执行netstat -ano | findstr :8100,如果有结果,记下PID,然后打开任务管理器找到对应进程结束掉,再重新启动livereload。

6. 调整WebView插件版本

cordova-plugin-ionic-webview 3.x和Ionic 3的兼容性可能存在小问题,你可以尝试降级到更稳定的2.x版本:

# 卸载当前版本
ionic cordova plugin rm cordova-plugin-ionic-webview
# 安装2.5.3版本(和Ionic 3兼容性更好)
ionic cordova plugin add cordova-plugin-ionic-webview@2.5.3

如果以上步骤都试过还是不行,可以临时关闭Windows防火墙测试一下,确认是不是防火墙规则没有真正生效。另外,有些路由器的“AP隔离”功能会阻止设备之间的通信,也可以检查一下路由器设置。

内容的提问来源于stack exchange,提问作者Arup Bhattacharya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:23:25