从源码编译react-native

一、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 问题(参考)

你可能感兴趣的:(从源码编译react-native)