在Android Studio中重用模块

时间:2015-11-14 16:18:55

标签: android android-studio gradle android-gradle

每当我将android库项目作为模块添加到我的Android Studio项目时,源都会被复制到Android Studio项目文件夹中。

有没有办法像eclipse那样解决它,只有一个库项目的副本,任何很多项目都可以引用它?

2 个答案:

答案 0 :(得分:8)

你有不同的方法来实现它:

  1. 使用本地模块引用正确的路径
  2. 添加 aar 文件
  3. 使用 maven repo
  4. 案例1:
    在项目中使用gradle和本地库,您可以参考外部模块

    只需使用:

    Project
    |__build.gradle
    |__settings.gradle
    |__app (application module)
       |__build.gradle
    

    settings.gradle

    include ':app' 
    include ':myLib'
    project(':myLib').projectDir=new   File('pathLibrary')
    

    app/build.gradle

    dependencies {
        compile project(':myLib')
    }
    

    注意myLib 您必须在另一个项目中使用库的路径,而不是项目的根

    案例2:
    编译库模块,获取 aar文件,然后添加到主项目中:

    添加将aar文件放在存储库中的文件夹:

    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
    

    然后添加依赖项:

    dependencies {
        compile(name:'nameOfAarFile', ext:'aar')
    }
    

    案例3: 另一种方法是将您的模块发布到maven存储库

    通过这种方式,只需使用:

    dependencies {
        compile ('mypackage:mymodule:X.Y.Z')
    }
    

答案 1 :(得分:3)

我会将您的共享代码编译为库项目。所以你会得到一个你可以参考的aar文件。

要创建Android Archive,您需要使用以下命令将项目构建为发布版本:

gradlew aR

之后,您有一个名为<modulename>-release.aar的文件,此文件位于<projectroot>/<modulename>/build/outputs/aar。我将这些文件重命名为<modulename>.aar,然后您可以将它放入模块的lib目录中。

完成后,您可以从您需要的模块中引用它,如下所示:

compile(name:'<modulename>', ext:'aar')

这也加快了构建时间,因为您不再需要编译项目。