分享

导入一个AndroidStudio工程作为一个Library Module

 oskycar 2018-05-18

尊重劳动成果,转载请注明出处:http://blog.csdn.net/growth58/article/details/47441245
关注新浪微博:@于卫国
邮箱:yuweiguocn@gmail.com

在我们有两个Android Studio工程的情况时,我们想使用一个作为library工程导入到另一个工程作为一个module。我们可以使用Android Studio很容易的做到。

让我们假设我们有两个工程:MyApplication和MyLibrary,我们想导入MyLibrary到MyApplication作为一个module。

这里写图片描述
首先我们需要从MyLibrary工程中找到module中的build.gradle文件,它通常在app目录下,除非你修改了module的名称。

这里写图片描述

注意builde.gradle文件的plugin是‘com.android.application’。为了使用这个工程作为一个library工程,我们需要修改为 ‘com.android.library’。文件的内容就像这样:

这里写图片描述

试着sync一下工程,会出现一个错误: Library projects cannot set applicationId(类工程不能设置applicationId)。

这里写图片描述

我们可以删除gradle文件中的applicationId这行,在defaultConfig 括号里面。

这里写图片描述
MyLibrary 工程就修改完了。
然后我们在MyApplication 工程中导入
MyLibrary 作为一个module。
在MyApplication 工程中, 点击File -> New -> Import Module。
这里写图片描述

出现一个对话框

这里写图片描述

从MyLibrary工程中找到你想要导入的Module目录。通常它是app module除非你给了它另一个名称。

这里写图片描述

如果在MyApplication工程中Module使用相同的名称将会出现错误。为了从一个library工程导入一个修改的Module,我们可以给它一个版本号在Module名称设置框。

这里写图片描述

修改Module的名称为my-library,导入成功。

这里写图片描述

到这一步差不多已经完成,最后一步是在MyApplication 工程中修改依赖。
很多人会忘了做这一步。

打开工程结构对话框,选择app Module(可以有别的名称),在右侧点击依赖标签。

这里写图片描述

找到加号并点击它,从弹出菜单中选择module依赖。

这里写图片描述

然后选择我们刚从MyLibrary工程中导入的library module。

这里写图片描述

点击OK,就完成了。

IDE会在MyApplication/app/build/gradle file文件添加好依赖。

依赖部分就像下面的一样:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'    
    compile project(':my-library')
}
  • 1
  • 2
  • 3
  • 4
  • 5

它可能工作的挺好,但这有一个很重要的问题,MyLibrary工程有它自己的依赖。例如,MyApplication和MyLibrary使用support libraries,这有可能会发生冲突。

我们可以在gradle中通过transitive配置依赖避免这个问题。
我们可以修改这行

compile project(':my-library')
  • 1

compile(project(':my-library')){
    transitive=false;
}
  • 1
  • 2
  • 3

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

这里写图片描述

That’s all. Happy coding!

请我喝杯咖啡,请使用支付宝扫描下方二维码:

原文地址:http://ericliudeveloper./2015/08/how-to-import-existing-android-studio.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多