Гибридное приложение React Native для Android - после запуска приложения Detox зависает - PullRequest
0 голосов
/ 30 января 2019

Я пробую Детокс в приложении Hybrid React Native.Большая часть приложения была перенесена в React, но на Android все еще есть экран.
Проблема:
Когда я запускаю детокс в моем гибридном приложении Android, приложение запускается, нонемедленно закрывается.

«реактивный»: «^ 0.57.8»,
«детокс»: «^ 10.0.5»,
«шутка»: «^ 24.0.0 "

Я тестирую ту же конфигурацию в приложении React Native, и она работает.

Я обнаружил эту проблему, но она была закрыта без изменений:
https://github.com/wix/detox/issues/720

Журнал Android-эмулятора:

--------- beginning of crash

2019-01-30 11: 17: 00.862 5047-5081 /?E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: com.wix.detox.manager Процесс: com.example.ha.androidapp, PID: 5047 java.lang.ClassCastException: android.app.Application не может быть приведен к com.facebook.react.ReactApplication вcom.wix.detox.ReactNativeSupport.getInstanceManager (ReactNativeSupport.java:63) в com.wix.detox.ReactNativeSupport.waitForReactNativeLoad (ReactNativeSupport.java:117) в com.wix.deactjactReactна com.wix.detox.DetoxManager.start (DetoxManager.java:72) на com.wix.detox.Detox $ 1 $ 1.run (Detox.java:133) на android.os.Handler.handleCallback (Handler.java:751) на android.os.Handler.dispatchMessage (Handler.java:95) на android.os.Looper.loop (Looper.java:154) на com.wix.detox.Detox $ 1.run (Детокс.java:136) наjava.lang.Thread.run (Thread.java:761)

MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mReactRootView = new ReactRootView(this);
    mReactInstanceManager = ReactInstanceManager.builder()
            .setApplication(getApplication())
            .setBundleAssetName("index.android.bundle")
            .setJSMainModulePath("index")
            .addPackage(new MainReactPackage())
            .setUseDeveloperSupport(BuildConfig.DEBUG)
            .setInitialLifecycleState(LifecycleState.RESUMED)
            .build();
    mReactRootView.startReactApplication(mReactInstanceManager, "MyReactNativeApp", null);

    setContentView(mReactRootView);
}
...