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


    在我们有两个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)
    }

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

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

    compile project(‘:my-library)

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

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

    技术分享

    That’s all. Happy coding!

  • 相关阅读:
    后缀数组 (Suffix Array) 学习笔记
    Miller-Rabin 素性测试 与 Pollard Rho 大整数分解
    [ USACO 2013 OPEN ] Photo
    清华集训2016做题记录
    「UNR#2」黎明前的巧克力
    「UNR#1」奇怪的线段树
    Atcoder Grand Contest 018 E
    「NOI2015」小园丁与老司机
    「集训队作业2018」三角形
    Codeforces 878 E. Numbers on the blackboard
  • 原文地址:https://www.cnblogs.com/wangfeng520/p/6396931.html
Copyright © 2020-2023  润新知