Java.net.ConnectException: 连接本地主机/127.0.0.1(端口8080)失败:连接失败:ECONNREFUSED…(Codename One应用程序)

25
构建完安卓应用后,我成功扫描生成的QR码并在Galaxy S4上安装了该应用。但是当我尝试使用该应用进行搜索时,出现了以下异常:
 "java.net.ConnectException: fail to connect to localhost/127.0.0.1(port 8080): connect failed: ECONNREFUSED…." 

请查看附加的图片以获得更清晰的信息。
该应用程序在模拟器上正常工作。我关闭了系统防火墙,但这并没有解决问题。请问如何解决这个问题?
此问题适用于: NetBeans 8.0.2, GlassFish Server 4.1, Windows 7, 设备:三星Galaxy S4

enter image description here

最好的祝愿。


2
附加的图片并没有增加更多的清晰度。请不要在此处发布文本图片。您已经在标题中发布了错误信息。 - user207421
3个回答

121

在模拟器内,127.0.0.1 指的是模拟器本身,而不是您的本地计算机。您需要使用与本地计算机桥接的IP地址10.0.2.2


3
谢谢你提供的解决方案,它节省了我很多时间! - hetsgandhi
1
谢谢您的回答。解决了我卡了几天的问题。 - Khkhy
还需要重新编写端口,例如:http://10.0.2.2:9000 - Morozov
嗨@Morozov,我并不需要重写端口,只是为了记录。 - EdwardG

19

看起来您正在尝试在URL中连接到localhost

这在模拟器中可能运行良好,但是在生产环境中运行应用程序时,您将需要使用IP地址或最好使用可解析的主机名来代替URL。

请尝试按照以下方式更改您的URL。您可以使用手机的网络浏览器测试连接性,例如在浏览器中输入 Web 服务的 URL(不要使用 localhost!)并查看发生了什么。


只是补充一下,仅连接到IP可能不够,因为设备可能驻留在不同的NAT上,所以他需要部署到公共可见服务器。 - Shai Almog
2
ck1和Shai,感谢你们的启示和支持。是的,我已经用系统的IP地址替换了本地主机名,异常消失了。我目前正在研究公共IP和noip,以便将我的服务器公开。 - Yahya-Imam Munir

3

我启动了本地API服务器,但通过IP地址连接时遇到了问题。

我找到了一个解决方案,可以帮助我 - 首先运行API服务器,启动模拟器,然后进入CMD中的Android ADB(路径应该类似于%USERPROFILE%\AppData\Local\Android\Sdk\platform-tools)。接下来进入该目录并运行以下命令:

adb reverse tcp:8080 tcp:8080

你应该能够达到它。运行你的安卓应用程序,问题解决。

更多关于反向代理的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接