当前位置 : 主页 > 网页制作 > React >

在将React Native与现有Android应用程序集成时需要未知模块“ReactPerf”

来源:互联网 收集:自由互联 发布时间:2021-06-15
我正在尝试集成最新的React Native构建,并且我遇到了错误.这是我的项目设置: 在app的build.gradle中,我导入react-native 0.24.1: dependencies { ... compile 'com.facebook.react:react-native:0.24.1'} 项目的bui
我正在尝试集成最新的React Native构建,并且我遇到了错误.这是我的项目设置:

在app的build.gradle中,我导入react-native 0.24.1:

dependencies {
  ...
  compile 'com.facebook.react:react-native:0.24.1'
}

项目的build.gradle指向Git子模块中的React Native:

allprojects {
    repositories {
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$projectDir/../MyGitSubmodule/AwesomeProject/node_modules/react-native/android"
        }
    }
}

我已按照文档here中的描述进行了集成,并按照文档here中的描述在git子模块中升级了RN.我已将我的堆栈跟踪上传到此pastebin link.要总结堆栈跟踪,因为格式化很难阅读,这些是亮点:

>无法为类com.facebook.react.views.text.ReactVirtualTextViewManager找到生成的setter – 这适用于大量的Native类.也许所有这些.
>错误:需要未知模块“ReactPerf”.如果您确定该模块在那里,请尝试重新启动打包程序或运行“npm install”
>得到JS异常:错误:要求模块“23”引发异常
>得到JS异常:ReferenceError:找不到变量:__ fbBatchedBridge
>此外,模拟器显示红色死亡屏幕,并显示以下消息 – “错误:需要模块”8“,它引发异常”

基本上,它抱怨模块ReactPerf是必需的,但它不存在.

仅供参考,ReactPerf模块:https://www.npmjs.com/package/react-addons-perf.

从逻辑上讲,我们只需要告诉react-native来安装这个东西.

棘手的部分是,如果我们这样做:

npm install react-addons-perf,然后我们将它安装在react-native依赖项的“外部”.因此,它会抱怨react-addons-perf也需要反应包.

解决方案是我们需要声明这个依赖“inside”react-native包.换一种说法:

打开node_modules / react-native / package.json.你会找到

...
"dependencies": {
"absolute-path": "^0.0.0",
"art": "^0.10.0",
"babel-core": "~6.4.5",
"babel-plugin-external-helpers": "~6.4.0",
...
"react": "^0.14.5"
...
}

所以,我们需要做的就是为这些添加react-addons-perf.

...
"dependencies": {
"absolute-path": "^0.0.0",
"art": "^0.10.0",
"babel-core": "~6.4.5",
"babel-plugin-external-helpers": "~6.4.0",
...
"react": "^0.14.5",
"react-addons-perf": "^0.14.5", // ADD THIS LINE FOR ReactPerf module
...
}

然后,npm安装.

根据我的经验,其余的错误,如需要模块“8”也将消失.

它对我有用,希望它也适合你.

网友评论