react-native 虽然简便了我们在多端适配的开发过程。但是在项目中遇到很多需要特别定制化的地方还有修复官方没有计划修复的 bug ,最直接的方案就是修改 react-native 源码。因此我们需要修改安卓的 打包配置 文件以便我们在项目中直接使用 node_modules 里面的 react-native 源码来编译。
-
修改
android/settings.gradle
文件include ':ReactAndroid' project(':ReactAndroid').projectDir = new 复制代码
-
修改
android/local.properties
文件(如果没有则自己创建)sdk.dir=XXX ndk.dir=XXX 复制代码
这里需要注意的
- ndk 版本需要下载对应的,网上查到的都是比较久的版本,对应 r10b 的 NDK 。而在我最新的项目中使用了
"react-native": "0.63.3"
使用 r20b 的 NDK。 - 如果在项目中多个依赖库需要用到不同的 NDK 版本,我们最好还是老老实实的在 node_modules/react-native/ReactAndroid/build.gradle 中指定 NDK 版本。
- ndk 版本需要下载对应的,网上查到的都是比较久的版本,对应 r10b 的 NDK 。而在我最新的项目中使用了
-
修改
android/app/build.gradle
文件android { // 添加上这一行 configurations.all { exclude group: 'com.facebook.react', module: 'react-native' } } dependencies { // 把这一行替换成 // implementation "com.facebook.react:react-native:+" implementation project(':ReactAndroid') } 复制代码
-
修改
android/build.gradle
文件dependencies { // 添加上这一行 classpath 'de.undercouch:gradle-download-task:3.4.3' } allprojects { configurations.all { resolutionStrategy { dependencySubstitution { substitute module("com.facebook.react:react-native:+") with project(":ReactAndroid") } } } } 复制代码
修改完全部文件之后,需要清理一下缓存: cd android & ./gradlew clean
这时候重新构建,react-native 就是从 node_modules 下编译的了。可以直接修改其中的源码来达到目的。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END