我的Ionic应用程序在运行 ionic serve 时运行良好,但是当我使用命令 ionic cordova run android --livereload 时,它无法正常运行并给出错误 “无法加载资源:net :: ERR_CONNECTION_REFUSED” 下面是离子信息
Ionic CLI : 4.12.0
Ionic Framework : @ionic/angular 4.4.2
@angular-devkit/build-angular : 0.13.9
@angular-devkit/schematics : 7.3.9
@angular/cli : 7.3.9
@ionic/angular-toolkit : 1.5.1
科尔多瓦:
Cordova CLI : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.0.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 4 other plugins)
实用程序:
cordova-res : not installed
native-run : 0.2.7
系统:
NodeJS : v10.16.0 (C:\Program Files\nodejs\node.exe)
npm : 6.9.2
OS : Windows 10
config.xml
<?xml version='1.0' encoding='utf-8'?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
<name>MyApp</name>
<description>An awesome Ionic/Cordova app.</description>
<author email="hi@ionicframework.com" href="http://ionicframework.com/">Ionic Framework Team</author>
<content src="index.html" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="19" />
<preference name="BackupWebStorage" value="none" />
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="300" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="SplashScreenDelay" value="3000" />
<plugin name="cordova-plugin-whitelist" spec="1.3.3" />
<plugin name="cordova-plugin-statusbar" spec="2.4.2" />
<plugin name="cordova-plugin-device" spec="2.0.2" />
<plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
<plugin name="cordova-plugin-ionic-webview" spec="^4.0.0" /> //latest version
<plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
</widget>
答案 0 :(得分:2)
在这种情况下,一个选项是不传递-l / -livereload,该参数用于livereload功能。因此,只需运行:
ionic cordova run android
然后它将编译apk并将其部署到您的手机中,但不会运行网络服务器来监视更改。
在这种情况下,您仍然可以使用Chrome进行调试,但是如果您对标记进行了更改并按保存,它将不会自动通过该更改重新加载应用程序。您将需要再次运行ionic cordova run android
来重建并将其部署到手机中。
从正面看:在第一次部署之后,随着gradle服务器的启动,后续的构建要快得多。
从正面看2:如果断开USB连接,则仍然可以使用您的应用。使用livereload部署的应用程序,一旦断开连接,它就会中断。
我实际上也很想解决您的问题。当我在共享办公空间中移动时,有时似乎网络已被某种程度地锁定,并且仅阻塞了某些端口。我还没有弄清楚为什么或者是否有解决办法。
答案 1 :(得分:0)
一个临时解决方法是设置基本href =“。”在index.html中。 但是不会加载您的图标。
永久修复:
ionic cordova platform remove android
ionic cordova platform add android@7.1.0
ionic cordova plugin remove cordova-plugin-ionic-webview
ionic cordova plugin add cordova-plugin-ionic-webview@latest
答案 2 :(得分:0)
您需要一些东西来将来自android设备的localhost:8080请求代理回运行livereload服务器的开发箱中。
您可以通过在Chrome浏览器中打开端口chrome://inspect/#devices
,通过chrome浏览器进行端口转发,或者直接在电话的连接属性本身上配置端口转发。我用它来通过Windows开发箱上的Fiddler观看流量。
还可以通过配置service proxies,将ionic livereload服务器配置为路由非离子流量。