我正在尝试按照指南将现有的 android 应用程序与 React Native 集成。它编译并运行,但是当我启动 React 活动时,它崩溃了:
原因:java.lang.RuntimeException:无法连接到开发服务器。
我在模拟器(genymotion)和USB连接设备上都试过了。我已经运行adb reverse tcp:8081 tcp:8081
并验证了adb reverse --list
,并且进一步验证了除了从我的笔记本电脑之外,我还可以从设备上的浏览器访问http://localhost:8081/index.android.bundlenpm start
(因此包服务器运行良好,通过)。
值得注意的是,我可以很好地运行教程示例,所以这似乎是关于从我现有的 Android 应用程序中运行 RN 的东西。
我在 react-native 0.27.2 上。
想法?
更新:我添加了一些代码来直接从我的一项活动中获取捆绑包:
public void pingReactServer() {
Request request = new Request.Builder()
.url("http://10.0.3.2:8081/index.android.bundle")
.build();
OkHttpClient client = OkHttpClientProvider.getOkHttpClient();
client.newCall(request).enqueue(
new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.v(TAG, "React ping failed: " + call);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.v(TAG, "React ping response: " + response.body().string());
}
}
);
}
这很好用,我取回了捆绑内容。因此,React 的 http 客户端可以看到打包服务器,并且在以正常方式(DevServerHelper)获取捆绑包时一定会导致错误。