Android 如何将主module变为library

前言

最近在做项目的过程中,遇到了这样一个情况,上来新建了一个工程,把代码都写在了主 module 里,功能写完调通后发现,需要将这些代码变成一个 library,方便别的项目依赖,转变的过程中还是遇到了一些问题,在此总结一下。

正文

这里我新建的项目,主module自动命名为app,下文中就以app指代主module。

  1. 打开 app 的 build.gradle 文件
    apply plugin: 'com.android.application' 修改为 apply plugin: 'com.android.library'
  2. 仍然在 app 的 build.gradle 文件中
    去掉 applicationId "com.xxxx.xxxx.xxxx" 这一行,library 是没有 applicationId 的

完成前两步,你的主 module 已经变成一个 library 了,但是离你真正用上它,还有一小段距离

  1. 你需要依赖这个 library
    你需要在 settings.gradle 里 include 这个 library,
    并且在新的主 module 里,compile 这个 library。
    这个时候问题来了,运行到手机上发现,桌面出现了两个图标
    很简单,只需要把 library 里清单文件中的:
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    删掉即可

到这里基本就完成了,但是还有可能出现一些问题,比如:

  • 你的 library 里的资源文件命名和新的主 module 里的命名冲突
  • 引用的三方库版本不同
  • 使用了ButterKnife
  • 使用了switch{}语法

这些都有可能导致问题,根据错误提示一个一个解决即可。

结语

下班!周末愉快!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,360评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    wgl0419阅读 6,408评论 1 9
  • 一大清早天还灰蒙蒙的,爱迪就醒了。一看,阴阳隐形衣还是在她身上。她尝试各种方法把它脱下来,可是隐形衣依然牢牢地贴着...
    真心博士周美伶阅读 270评论 13 5
  • 太极拳的劲是什么? 四两拨千斤是一个美丽的想象,我也一直追求并深信着,虽然每个阶段的认识不同。 当接触的多了,...
    在那1阅读 293评论 0 0
  • 有一句话叫想当年可是当年怎么啦!日子在不经易地溜走时光一去永不回头不管生活给予什么只有坦然地接受,活着总得面对不如...
    简单的小诺儿阅读 475评论 14 64