在Android 4.4.2版本上获取net :: ERR_CONNECTION_REFUSED(http:// localhost:8080)

时间:2018-07-30 20:49:54

标签: android ionic-framework ionic3

我从this tutorial.构建一个简单的离子项目

它可以在小米Mix 2手机(Android 8.0.0版)和浏览器上正常运行。 但是当我将其部署到三星Note 2(Android版本4.4.2)时, 它通过以下消息给出了应用程序错误: net :: ERR_CONNECTION_REFUSED(http://localhost:8080

为什么会出现此错误?

任何建议都将受到赞赏。

Kemal。

6 个答案:

答案 0 :(得分:3)

我在Android 4.4,Android 6.0中遇到了相同的问题,但在Android 8.0中却没有。我只是在config.xml中添加了此代码以允许localhost。

using System.Reflection;
using System.Collections.Concurrent;
using System.Linq;

...

var connMan = Clients.All.GetType().GetField("_lifetimeManager", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(Clients.All);
var connsObj = connMan.GetType().GetField("_connections", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(connMan);
ConcurrentDictionary<string, HubConnectionContext> conns = (ConcurrentDictionary<string, HubConnectionContext>)connsObj.GetType().GetField("_connections", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(connsObj);
Console.WriteLine("Current connections: " + String.Join(",", conns.Values.ToList().Select(i => i.ConnectionId)));

有关更多信息,请点击以下链接: WKWebView

答案 1 :(得分:2)

您的问题是由cordova-plugin-ionic-webview插件引起的,该插件是每个新的或更新的Ionic应用程序的一部分。

这曾经只适用于iOS,用WKWebView代替了UIWebView,但是在2018年7月23日,他们发布了插件的2.0版本,其中还包括对Android上使用的webview的更改。

Android网络视图现在使用localhost:8080上的本地网络服务器来显示您的应用,而不是直接从文件系统中请求文件。

不幸的是,此更改还包括了文档中的以下内容:

Requirements
- […]
- Android: Android 5.0+ and cordova-android 6.4+

所以cordova-plugin-ionic-webview不再支持5.0之前的Android,这当然意味着您的应用将无法在Android 4.x上运行。

一种解决方案是将插件降级为支持Android 4.x的最新版本:

ionic cordova plugin add cordova-plugin-ionic-webview@1.2.1

更多详尽的信息和替代解决方案:
https://ionic.zone/debug/ionic-and-android-4

答案 2 :(得分:0)

您会收到此错误,因为Android中的每个功能和模块都只能在更新的某个版本中使用。它可能是4.4.3及更高版本,5.0及更高版本,甚至是8.0及更高版本。这只是取决于。这意味着,如果以及在部署它时,将要求您选择最低版本。除了尝试使用较新的版本外,您无法做任何修复。您也可以完全更改代码以使用较旧的模块。

答案 3 :(得分:0)

即使在新设备上,我也有同样的错误。之后,我重新安装了cordova-plugin-ionic-webview插件。重新安装将插件从4.0.0升级到5.0.0,并将新行添加到config.xml

<allow-navigation href="http://localhost:8100" sessionid="f8f1cc34" />

我仍在等待审查,但希望这会有所帮助。

答案 4 :(得分:0)

万一仍然无法解决此错误,

  1. 找到适合您的兼容Webview版本并运行以下命令:
    cordova plugin rm cordova-plugin-ionic-webview
    cordova plugin add cordova-plugin-ionic-webview@4.1.3
  1. 如果您使用的是ionic,请安装ionic插件包装。 (如果您的项目不是离子项目,请跳过此步骤)
    npm install @ionic-native/ionic-webview
  1. 最后干净安装平台和插件。删除 插件文件夹并运行以下命令:
    cordova platforms remove android
    ionic cordova build android

或者,如果您使用离子型,

    ionic cordova platforms remove android
    ionic cordova build android

其他信息:插件版本cordova-plugin-ionic-webview@4.1.3适用于以下cordova和android版本:

Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
Cordova Platforms : android 8.1.0
Android target    : android-28
Android SDK Tools : 26.1.1
cordova-android   : 8.1.0

答案 5 :(得分:0)

我这个问题持续了好几天,发现的所有解决方案都行不通。

Ionic建议使用Capacitor而不是Cordova来构建应用程序。使用Cordova不能正常工作,另一方面使用Capacitor可以正常工作。

在您的应用目录中,首先删除Android文件夹(如果有的话),然后删除Platform / Android文件夹中的那个。

我在Powershell停留在APP目录中时按以下顺序使用了这些命令

ionic build

ionic capacitor add android

npx cap open android

第一个命令将创建一个www文件夹。 如果最后一个命令给出了错误并且没有打开Android Studio,请手动执行(我建议使用4.0版本)。打开Android Studio→打开文件夹,导航到APP文件夹中名为Android的文件夹,然后对我有用。在Android Sudio 4中,确保已更新Gradle并加载了SDK。