У меня есть еще один проект RN, и я сгенерировал его как пакет (названный: appA.bundle) с зарегистрированным компонентом app.js «ProjectA».
В моем основном проекте RN или, скажем, рамочном проекте (имя пакета: index.bundle) с зарегистрированным компонентом app.js «MainProject» я хотел бы вызвать appA.bundle. Однако это не работает. Кто-нибудь, пожалуйста, посоветуйте?
Большое спасибо.
Следующая кодировка используется для вызова пакета в Android Studio.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("appA.bundle")
.setJSMainModulePath("index")
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(BuildConfig.DEBUG)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "ProjectA", null);
setContentView(mReactRootView);
}
Следующая ошибка отображается в Android Studio logcat:
10-31 15:25:27.890 24965-28439/com.mainproject I/ReactNativeJS: Running application "ProjectA" with appParams: {"rootTag":51}. DEV === true, development-level warning are ON, performance optimizations are OFF
10-31 15:25:27.891 24965-28439/com.mainproject E/ReactNativeJS: Application ProjectA has not been registered.
Hint: This error often happens when you're running the packager (local dev server) from a wrong folder. For example you have multiple apps and the packager is still running for the app you were working on before.
If this is the case, simply kill the old packager instance (e.g. close the packager terminal window) and start the packager in the correct app folder (e.g. cd into app folder and run 'npm start').
This error can also happen due to a require() error during initialization or failure to call AppRegistry.registerComponent.
10-31 15:25:27.897 24965-24965/com.vendorproject E/unknown:ReactNative: Unable to launch redbox because react activity is not available, here is the error that redbox would've displayed: Application ProjectA has not been registered.
Эта ошибка связана с двумя разными проектами. Ваш код инициализирует второй проект, вызывая localhost: 8081, на котором, вероятно, у вас запущен основной.
Чтобы все работало, я только что запустил код без .setUseDeveloperSupport(BuildConfig.DEBUG), в то время как подпроект связан с двоичным файлом в папке src/main/assets.