Опитвам се да интегрирам съществуващо приложение за Android с React Native, следвайки ръководство. Той се компилира и работи, но когато стартирам дейността React, той се срива с:
Причинено от: java.lang.RuntimeException: Не може да се свърже със сървъра за разработка.
Опитах и в емулатор (genymotion), и на устройство, свързано с USB. Стартирах adb reverse tcp:8081 tcp:8081
и потвърдих с adb reverse --list
и освен това потвърдих, че имам достъп до http://localhost:8081/index.android.bundle от браузъра на устройството, в допълнение към моя лаптоп (така че сървърът за пакети работи добре, чрез npm start
).
Трябва да се отбележи, че мога да стартирам добре примера с урока, така че изглежда е нещо свързано с стартирането на RN от съществуващото ми приложение за Android.
Аз съм на 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());
}
}
);
}
Това работи добре, получавам обратно съдържанието на пакета. Така че http клиентът на React може да види сървъра за пакетиране и нещо друго трябва да причинява грешка при извличане на пакета по нормалния начин (DevServerHelper).