2016-02-07 2 views
1

согласно инструкциям добавления react-native-maps, добавляя к MainActivity:реагируют нативный-MAPS вопрос интеграции с родным реагировать 0.19.0

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    mReactRootView = new ReactRootView(this); 

    mReactInstanceManager = ReactInstanceManager.builder() 
      .setApplication(getApplication()) 
      .setBundleAssetName("index.android.bundle") 
      .setJSMainModuleName("index.android") 
      .addPackage(new MainReactPackage()) 
      .addPackage(new AirPackage()) // <---- and This! 
      .setUseDeveloperSupport(BuildConfig.DEBUG) 
      .setInitialLifecycleState(LifecycleState.RESUMED) 
      .build(); 

    mReactRootView.startReactApplication(mReactInstanceManager, "MelBike", null); 

    setContentView(mReactRootView); 

} 

Я столкнулся с этим исключением:

java.lang.AssertionError: Attached DialogModule to host with pending alert but no FragmentManager (not attached to an Activity). 
                  at com.facebook.infer.annotation.Assertions.assertNotNull(Assertions.java:28) 
                  at com.facebook.react.modules.dialog.DialogModule.onHostResume(DialogModule.java:199) 
                  at com.facebook.react.bridge.ReactContext.onResume(ReactContext.java:140) 
                  at com.facebook.react.ReactInstanceManagerImpl.moveReactContextToCurrentLifecycleState(ReactInstanceManagerImpl.java:761) 
                  at com.facebook.react.ReactInstanceManagerImpl.setupReactContext(ReactInstanceManagerImpl.java:599) 
                  at com.facebook.react.ReactInstanceManagerImpl.access$700(ReactInstanceManagerImpl.java:84) 
                  at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.onPostExecute(ReactInstanceManagerImpl.java:187) 
                  at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.onPostExecute(ReactInstanceManagerImpl.java:162) 
                  at android.os.AsyncTask.finish(AsyncTask.java:651) 
                  at android.os.AsyncTask.-wrap1(AsyncTask.java) 
                  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:148) 
                  at android.app.ActivityThread.main(ActivityThread.java:5417) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Это источник исключения в собственном коде реакции, DialogModule класс:

public void onHostResume() { 
mIsInForeground = true; 
// Check if a dialog has been created while the host was paused, so that we can show it now. 
FragmentManagerHelper fragmentManagerHelper = getFragmentManagerHelper(); 
Assertions.assertNotNull(
    fragmentManagerHelper, 
    "Attached DialogModule to host with pending alert but no FragmentManager " + 
    "(not attached to an Activity)."); 
fragmentManagerHelper.showPendingAlert(); 

У меня есть trie d, чтобы прокомментировать утверждение в классе DialogModule и запустить action-native run-android, но, похоже, это не отразилось на скомпилированном коде, который запускался в моем эмуляторе.

также попытался установить LifecycleState.RESUMED к LifecycleState.BEFORE_RESUME но затем приложение загружает только пустой экран и меню Dev не функционирует должным образом.

Я что-то упустил?

ответ

1

Как выглядит остальная часть вашей деятельности? Я столкнулся с этим, но проблема заключалась в том, что я не выполнял DefaultHardwareBackBtnHandler в своей деятельности.

Вот как они реализуются:

@Override 
protected void onPause() { 
    super.onPause(); 

    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onPause(); 
    } 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onResume(this, this); 
    } 
} 

@Override 
public void onBackPressed() { 
    if (mReactInstanceManager != null) { 
     mReactInstanceManager.onBackPressed(); 
    } else { 
     super.onBackPressed(); 
    } 
} 
+0

Да, то, что я узнал в конце, возвращаясь к основному учебнику Facebook, надеюсь, это поможет другим новичкам, которые начали с использованием 3-библиотек прямо пропустить и пропустить оригинальную обучающую программу :) –