我有另一个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没有已注册。
答案 0 :(得分:0)
此错误是由于有2个不同的项目引起的。您的代码正在通过调用localhost:8081初始化第二个项目,而本地主机可能正在运行该项目。
为了使事情能够运行,我只运行了没有.setUseDeveloperSupport(BuildConfig.DEBUG)
的代码,而子项目与src/main/assets
文件夹中的二进制文件捆绑在一起了