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

React Native安卓调试连接10.0.2.2而非localhost的解决方法咨询

解决React Native安卓调试器默认连接10.0.2.2而非localhost的问题

别担心,这个问题在React Native开发里挺常见的,我给你整理了几个实用的解决办法:

方法1:通过开发者菜单临时修改调试地址

这是最快的临时调整方式,适合单次调试场景:

  • 打开安卓模拟器里的React Native应用
  • 摇晃模拟器(或者按快捷键:Windows/Linux用Ctrl+M,Mac用Command+M)调出开发者菜单
  • 选择「Dev Settings」选项
  • 找到「Debug server host & port for device」,输入localhost:8081
  • 返回应用并重启,之后调试器就会连接你指定的localhost地址了

方法2:启动命令里直接指定主机地址

如果每次启动都想默认用localhost,可以在运行命令时加上参数:

react-native run-android --host localhost

这样启动应用时,调试服务器会直接绑定localhost,模拟器里的调试连接也会自动指向这个地址。

方法3:修改项目配置实现永久生效

要是想一劳永逸,不用每次手动设置,可以修改安卓项目的默认配置:

  1. 打开项目里的android/app/src/main/java/com/[你的项目包名]/MainApplication.java文件
  2. 在onCreate方法中添加代码,覆盖默认的调试服务器主机:
import com.facebook.react.devsupport.DefaultDevSupportManager;
import com.facebook.react.devsupport.DevSupportManager;
import com.facebook.react.devsupport.DevSupportManagerFactory;
// 保留原有导入内容

@Override
public void onCreate() {
  super.onCreate();
  
  // 添加这段代码设置默认主机为localhost
  ReactInstanceManager.builder().setDevSupportManagerFactory(new DevSupportManagerFactory() {
    @Override
    public DevSupportManager create(Context context, ReactInstanceManager instanceManager, DevBundleDownloader bundleDownloader, String jsBundleFile) {
      return new DefaultDevSupportManager(context, instanceManager, bundleDownloader, jsBundleFile) {
        @Override
        protected String getServerHost() {
          return "localhost";
        }
      };
    }
  });
  
  // 保留原有代码...
}
  1. 保存文件后重新运行react-native run-android,以后默认就会连接localhost:8081了

小补充

为啥默认是10.0.2.2?因为安卓模拟器的网络环境是独立的,10.0.2.2是模拟器内置的、用来映射主机localhost的别名,大部分场景下两者效果一致,但如果你的主机localhost有特殊绑定配置,就需要手动改成localhost了。

内容的提问来源于stack exchange,提问作者Shaffiulla Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:49:32