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

Android模拟器连接localhost失败:java.net.ConnectException报错求助

解决Android模拟器连接localhost失败的问题

问题根源

Android模拟器中的127.0.0.1指向模拟器自身的回环地址,而非运行后端服务的主机,因此无法连接到电脑上的本地服务。

解决方案

1. 替换为模拟器专属主机地址

把代码里的http://127.0.0.1:3000换成http://10.0.2.2:3000——这是Android Studio自带模拟器专门用于访问主机localhost的地址。修改后的代码示例:

private fun call() {
    val retrofit = Retrofit.Builder()
        .baseUrl("http://10.0.2.2:3000") // 替换为模拟器专属地址
        .addConverterFactory(GsonConverterFactory.create())
        .build()

    val apiService = retrofit.create(ApiService::class.java)

    val call = apiService.login()
    call.enqueue(object : Callback<String>{
        override fun onResponse(call: Call<String>, response: Response<String>) {
            Log.i("api_test", "onSuccess: ${response.body()}")
        }

        override fun onFailure(call: Call<String>, t: Throwable) {
            Log.i("api_test", "onFailure: $t")
        }
    })
}

2. 确保后端服务允许外部访问

检查你的后端服务是否仅监听127.0.0.1,如果是,需修改为监听0.0.0.0,这样模拟器才能访问到服务。比如Node.js服务的修改示例:

app.listen(3000, '0.0.0.0', () => {
    console.log("服务运行在http://0.0.0.0:3000")
})

3. 确认APP拥有网络权限

在AndroidManifest.xml中添加网络权限,否则APP无法发起网络请求:

<uses-permission android:name="android.permission.INTERNET" />

4. 其他模拟器适配

如果用的是Genymotion模拟器,需把地址换成10.0.3.2;如果是物理设备,直接使用电脑的局域网IP地址即可。

内容的提问来源于stack exchange,提问作者Selmen Bouazra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 07:35:10