近日想弄一个 Android 快速开发的模版,以后直接作为一个 Library Module 引入到新项目中,加快开发速度。在实际操作之后碰到了几个问题,现在把整个流程记录下来,方便以后再碰到时快速处理。

创建一个 Module

在要添加依赖的项目中点击菜单 File -> New -> Import Module Android Studio 添加和删除 Library Module
Android Studio 添加和删除 Library Module

将 Module 添加到现有的项目的依赖

改完名字后点击 Finish 就完成了导入一个 Module ,这时需要把新加的这个 Module 与现有的项目依赖在一起。
Android Studio 添加和删除 Library Module
添加完了点击 OK 之后,Studio 会报一个错误, Error:Dependency Demo:template:unspecified on project app resolves to an APK archive which is not supported as a compilation dependency. File: XXXX
出现这个错误的原因是因为被依赖的Module的此时还是一个Application,从 Module 的build.gradle文件里面可以看到:

apply plugin: ‘com.Android.application’

所以这里要将application改成依赖库的属性,具体如下:

apply plugin: ‘com.android.library’

改好之后又会报一个错误:
Error:Library projects cannot set applicationId. applicationId is set to ‘com.zgh.appdevtemplate’ in default config.
这是因为被依赖的库 Module,此时是作为一个库存在的,而 Module 的 applicationId 是仍然存在的,作为一个库不允许设置 applicationId,需要将 builde.gradle — android — defaultConfig中的 applicationId 删除,删掉之后再次编译就OK了。这时添加的 Module 就作为一个库依赖到了项目中。

到这里,在项目中添加一个依赖库就全部完成了,如果用起来一切正常当然是最好,但是有可能会出现一个问题,那就是依赖库有它自己的依赖,而我们的项目也有其他的依赖,如果这二者产生冲突,可以用下面的方法解决:
我们可以在gradle中通过transitive配置依赖避免这个问题。
我们可以修改这行

compile project(‘:my-library‘)

compile(project(‘:my-library‘)){
transitive=false;
}

这个问题就可以避免。Done!

上面的是给项目添加依赖库的方法,那么如果想要把添加的依赖库删掉的话怎么做呢?

彻底删除项目中依赖库

因为AndroidStuduio加入对Library Module的安全管理机制,所以不能直接右键项目找到Delete(Delete菜单压根找不到)进行删除。

解决办法:
在项目列表直接右键你要删除的 Library Module(其他类型 Module 也可以这样操作),找到菜单 Open Module Settings,在弹出的 Project Structure 窗口中找到要删除的 Library Module,点击左上角的 - 号图标,移除后点击OK,这时 Library Module 失去依赖,最后右键项目中的 Library Module 这时可以看到 Delete 菜单了,点击进行最后一步的删除,搞定!
Android Studio 添加和删除 Library Module
Android Studio 添加和删除 Library Module
Android Studio 添加和删除 Library Module
Android Studio 添加和删除 Library Module

这几步做下来如果发现 Module 的文件夹还在项目里面,可能还需要删除 settings.gradle 文件里面的 include 对应的包,去掉之后就会发现那个文件夹消失了,搞定!

相关文章: