在Android中反应本机多重捆绑

时间:2018-11-21 03:34:12

标签: android react-native bundle

我有另一个RN项目,并与app.js注册的组件“ ProjectA”一起作为捆绑包(名为:appA.bundle)生成。

在我的主要RN项目或具有app.js注册组件“ MainProject”的框架项目(包名称:index.bundle)中,我想调用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:使用appParams:{“ rootTag”:51}运行应用程序“ ProjectA”。 DEV === true,开发级警告为ON,性能优化为OFF

     

10-31 15:25:27.891 24965-28439 / com.mainproject E / ReactNativeJS:应用程序ProjectA尚未注册。

     

提示:当您从错误的文件夹运行打包程序(本地开发服务器)时,通常会发生此错误。例如,您有多个应用程序,而打包程序仍在为您以前使用的应用程序运行。

     

在这种情况下,只需杀死旧的打包程序实例(例如,关闭打包程序终端窗口),然后在正确的应用程序文件夹中启动打包程序(例如,将cd插入应用程序文件夹并运行“ npm start”)。

     

由于初始化期间的require()错误或无法调用AppRegistry.registerComponent,也可能发生此错误。

     

10-31 15:25:27.897 24965-24965 / com.vendorproject E /未知:ReactNative:由于没有反应活动,无法启动Redbox,这是Redbox会显示的错误:Application ProjectA没有已注册。

1 个答案:

答案 0 :(得分:0)

此错误是由于有2个不同的项目引起的。您的代码正在通过调用localhost:8081初始化第二个项目,而本地主机可能正在运行该项目。

为了使事情能够运行,我只运行了没有.setUseDeveloperSupport(BuildConfig.DEBUG)的代码,而子项目与src/main/assets文件夹中的二进制文件捆绑在一起了