一、react-native源码编译过程(参考官方文档从源代码编译React Native):
1、下载ndk:
ndk下载地址:(版本根据官方文档订)
2、在{project}/android 目录下修改local.properties,添加一行
windows:(修改为自己路径)
ndk.dir=C:\\Users\\your_name\\AppData\\Local\\Android\\android-ndk-r13b
mac: (修改为自己路径)
ndk.dir=/Users/your_unix_name/android-ndk-r13b //版本跟你下载的ndk版本相对应
3、在android/build.gradle中添加gradle-download-task依赖
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'de.undercouch:gradle-download-task:3.4.3' // 注意:不要把你的应用的依赖放在这里; // 它们应该放在各自模块的build.gradle文件中
}
4、添加:ReactAndroid项目
在android/settings.gradle中添加:ReactAndroid项目
include ':ReactAndroid'
project(':ReactAndroid').projectDir = new File( rootProject.projectDir, '../node_modules/react-native/ReactAndroid')
修改你的android/app/build.gradle文件,使用:ReactAndroid替换预编译库。例如用compile project(':ReactAndroid'):替换compile 'com.facebook.react:react-native:0.16.+'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}'
implementation project(':ReactAndroid')
...
}
5、让第三方模块使用你的分支
如果你使用第三方的 React Native 模块,你需要重写它们的依赖以避免它们仍然打包官方的预编译库。否则当你编译时会报错-Error: more than one library with package name 'com.facebook.react'.(错误:有几个重名的'com.facebook.react'的包)
修改你的android/app/build.gradle文件,添加如下内容
configurations.all {
exclude group: 'com.facebook.react', module: 'react-native'
}
6、在 Android Studio 中编译(时间过长,耐心等待)
在 Android Studio 欢迎页中选择Import project,随后选择您应用所在的文件夹。
您还需要使用Run按钮(译注:Android Studio 中绿色的运行按钮)来在设备上运行您的 app,此外 Android Studio 不会自动开启服务,你还需要通过npm start来启动开发服务。
7、clean与build 问题(参考)
网友评论