Android-RN混合开发系列(一、Android项目内RN的环境)

首先在开始之前最好先初始化一个RN项目。(对目录有一个大概的了解,对于后续的配置有很大帮助)。
这时候会发现在RN的根目录下面会有一个android和ios目录,不用怀疑,android目录下面就是一个完整的android项目,我们这里只讨论android项目配置RN,ios项目暂不讨论。
使用AndroidStudio打开android项目,如下图:

Android-RN混合开发系列(一、Android项目内RN的环境)_第1张图片
android目录结构

这里主要关注两个文件,上图中已经标记出来了。

1.app模块的build.gradle
api ('com.facebook.react:react-native:0.55.2') {
    exclude group: 'com.android.support'
}

可以看到引入了facebook的RN三方库,但是这里有个问题,facebook的公共maven库对于RN的环境库只维护到0.20.1版本,我这里明显是0.55.2版本,理论上是会引入失败的,那这里这么写不是有问题的吗!!

其实,解决这个问题的代码在项目的build.gradle中,这里提一下,暂不解决,讲到项目的gradle文件的时候会解决。

上面显示的代码框里的代码跟新初始化的RN项目有一点区别,因为多了一句exclude group: 'com.android.support'

这是因为我这里的support库与RN的库有了冲突,自己加的,如果你们的项目没有冲突,那不加也没事。

2.项目的build.gradle
maven {
      // All of React Native (JS, Android binaries) is installed from npm
      url "$rootDir/../node_modules/react-native/android"
}

一打开这个文件,学过android的人应该很清楚,这个maven库,竟然是个本地路径,啥情况,这对于开发是多么不友好,如果团队其他人要进行开发,那还必须有这样一个环境咯?作为一个最怕麻烦的程序员,这当然不能啦!!!后面的文章里我会讲解这个问题的,在本篇文章Android项目内RN环境介绍内,只讲基础环境。
在上面app模块的build.gradle中遗留的问题,解决地方就在这里,这个本地的maven库,打开文件夹可以看到,里面就是一个RN的三方库

Android-RN混合开发系列(一、Android项目内RN的环境)_第2张图片
image.png
,所以app模块的build.gradle中的三方库,是从这里加载的。从代码上方的注释也能理解

All of React Native (JS, Android binaries) is installed from npm
所有的RN库都是由npm进行安装的

不信的可以试一下,去掉这个本地库,RN库是安装不成功的。

讲完了Android内的RN环境,下一节就开始讲如何将RN与我们的Android项目进行拆分了。

你可能感兴趣的:(Android-RN混合开发系列(一、Android项目内RN的环境))