Android Studio中将一个项目转变成library(model)引入到另一个项目中使用

大家平时在做项目时,会经常应用library作为第三方依赖,那么如果公司中有多个app,其中有部分业务功能逻辑是相似并且可以复用的时候,我们货怎么办呢?简单粗暴的办法就是直接复制过来,但是这样做岂不是复用率不高,以后这部分代码要修改岂不是每个app都要修改。那么,把这部分代码作为library在项目中引用不就解决复用率的问题。

下面就一块来学习一下如何将公共模块打包成library:

1.提取公共模块部分,修改主要配置

新建一个项目,将公共模块代码放在这个新项目中,然后修改app下的build.gradle里面的参数,详细如下图所示:

image

将build.gradle里面的 apply plugin: 'com.android.application' 改成 apply plugin: 'com.android.library',并且将applicationId删掉或者注释掉,这个千万不要漏掉。

2.修改app文件夹里面的iml文件名称

进入到app文件夹下,修改app.iml为你的library库名,即是外层文件名,我这里改成了 baselibrary

image

3.删除不要的文件夹,并对文件夹重新命名

  1. 先将除app文件夹以外的文件都删掉,只保留app这个文件夹
image

2. 再将app文件夹里面所有的文件都复制到于app同级的文件夹里面

image

3.删掉app这个文件夹,同时修改外层文件夹的名称(最好改成与iml文件同样的名称,我这里改成 baselibrary):

image

以上我们的library就生成好了,那么我们接下来就是引用了

1.首先我们将刚刚生成的library引用到我们的新项目中,点击File——New——Import Model,选择baselibrary文件夹:

image

2.引用baselibrary作为app的model依赖,操作点击AS的File——Project Structure,会弹出如下弹窗:


image

image

点击ok按钮这是就可以在app下的build.gradel里面看到baselibrary作为库依赖在app里面了,接下来我们就可以正常的使用依赖里的功能代码。

特别注意点:

1.最好baselibrary里面的AndroidManifest里不要引用Application等,具体的如下图:

image

这里为什么要删除,是因为这里设置里MyApplication和LAUNCHER的话会和主项目app里面的冲突,如果真的需要在这里设置MyApplication和LAUNCHER的话,那就需要在app的添加忽略,具体怎么添加大家可以根据具体的报错查找,或者评论告诉我。

2.baselinrary里面的SdkVersion、依赖的recycleView等要和app里面的一致

3.baselibrary里面尽量不要用Butter knife,要用的话也要用8.4版本及其以上的,并且将R改成R2

以上就是我自己的亲身经历,踩了不止这些巨坑,不过好在最终达成了目标。大家在接入的时候如果遇到一些问题,可以在评论区给我评论。

你可能感兴趣的:(Android Studio中将一个项目转变成library(model)引入到另一个项目中使用)