E/ReactNativeJS: undefined 不是对象(正在计算 'b.default.sync')
E/ReactNativeJS: undefined is not an object (evaluating 'b.default.sync')
将 codePush 添加到我的项目中,出现错误:
E/ReactNativeJS: undefined is not an object (evaluating 'b.default.sync')
当我使用带有模块应用程序的新 React 项目时,按照文档所述安装代码推送 https://github.com/Microsoft/react-native-code-push/blob/master/docs/setup-android.md
一切都很好。
但是当我将代码推送添加到我现有的项目中时,模块名为 "passenger",而不是 "app",我按照文档的步骤添加代码推送手册。
也将代码添加到 index.android.js
import CodePush from "react-native-code-push";
componentDidMount(){
console.log("CodePush");
CodePush.sync();
}
当我 运行 我的模块时,遇到这个错误。 CodePush
未定义。
有人知道它有什么问题吗?
最后我通过在 MainActivity 中添加一些行解决了这个问题:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("main.bundle")
.setJSMainModuleName("TingBadgeManager")
.addPackage(new SQLitePluginPackage())
.addPackage(new CodePush("xxx", getApplicationContext(), com.xxx.xxx.BuildConfig.DEBUG)) // register CodePush Plugin here
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(true)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "TingBadgeManager", null);
setContentView(mReactRootView);
}
关键点是,如果您在 Activity 中创建 RN,则应在 mReactInstanceManager 中添加带有 addPackage
的 CodePush。
希望这可以帮助。
相关问题:https://github.com/Microsoft/react-native-code-push/issues/871
将 codePush 添加到我的项目中,出现错误:
E/ReactNativeJS: undefined is not an object (evaluating 'b.default.sync')
当我使用带有模块应用程序的新 React 项目时,按照文档所述安装代码推送 https://github.com/Microsoft/react-native-code-push/blob/master/docs/setup-android.md
一切都很好。
但是当我将代码推送添加到我现有的项目中时,模块名为 "passenger",而不是 "app",我按照文档的步骤添加代码推送手册。
也将代码添加到 index.android.js
import CodePush from "react-native-code-push";
componentDidMount(){
console.log("CodePush");
CodePush.sync();
}
当我 运行 我的模块时,遇到这个错误。 CodePush
未定义。
有人知道它有什么问题吗?
最后我通过在 MainActivity 中添加一些行解决了这个问题:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mReactRootView = new ReactRootView(this);
mReactInstanceManager = ReactInstanceManager.builder()
.setApplication(getApplication())
.setBundleAssetName("main.bundle")
.setJSMainModuleName("TingBadgeManager")
.addPackage(new SQLitePluginPackage())
.addPackage(new CodePush("xxx", getApplicationContext(), com.xxx.xxx.BuildConfig.DEBUG)) // register CodePush Plugin here
.addPackage(new MainReactPackage())
.setUseDeveloperSupport(true)
.setInitialLifecycleState(LifecycleState.RESUMED)
.build();
mReactRootView.startReactApplication(mReactInstanceManager, "TingBadgeManager", null);
setContentView(mReactRootView);
}
关键点是,如果您在 Activity 中创建 RN,则应在 mReactInstanceManager 中添加带有 addPackage
的 CodePush。
希望这可以帮助。
相关问题:https://github.com/Microsoft/react-native-code-push/issues/871