使用Android Studio的Android库项目

时间:2014-01-23 03:17:01

标签: android android-studio android-library

这个问题可能已在某个地方得到解答,但找不到合适的问题。

我想知道如何在Android Studio中创建通用实用程序库项目。 我想在其中编写一些常用类和一些常用方法,以便在Android应用程序项目中使用。可能就像Windows世界中的.dll一样 - 一组可以在多个消费者之间共享的常用方法。

提前致谢。

6 个答案:

答案 0 :(得分:27)

最简单的方法:

  1. 右键点击Android Studio中已打开的项目,然后选择 New > Module

  2. 在左侧窗格中选择Android库,然后单击下一步。

  3. 输入所有详细信息,取消选中创建活动,主题和所有内容(如果不需要)。

  4. 选择与项目相同的API级别,然后选择Next,Next,Next。

  5. 现在,您将看到项目中的另一个目录,库中的build.gradle将自动为您配置。

    如果您的模块/库名称是“mylibrary”

    include ':mylibrary' 
    

    将自动添加到项目根目录下的 settings.gradle 文件中。

    现在打开你的主模块并在依赖块中插入这一行:

    compile project(':mylibrary')
    

    如果要在其他项目中使用相同的库,则必须使用“文件浏览”将库模块复制到该特定项目,并且必须配置 settings.gradle 和主模块的构建。 gradle 手动。

答案 1 :(得分:19)

一个古老的问题,但即使是现在,似乎仍然是AndroidStudio中图书馆的支持者解决方案。我一直在考虑将迁移步骤推进一段时间,这就是我发现的。

我的解决方案'

让我们说我们有一个包含共享代码的库(称为lib)和一个想要使用该库代码的应用程序项目(称为app)。

关键是在项目根目录settings.gradle中的/Some/Path/MyProjects/Project/settings.gradle中定义项目 此文件应该已存在并包含include ':app'

之类的内容

我们将修改此文件以包含库并使用以下两行定义库:

/Some/Path/MyProjects/Project/settings.gradle

...
// tell gradle we want to include a module called 'lib'
include 'lib'
// tell gradle there is a module called 'lib', found in a specific directory
// Note the /app on the end, the project structure wraps a project around a module, you want to refer that module!
project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')
...

同时编辑项目build.gradle /Some/Path/MyProjects/Project/app/build.gradle以依赖新添加的模块lib

/有些/路径/ MyProjects下/项目/应用程序/ build.gradle`

...
dependencies {
    ...
    compile project (':lib') // we want to depend on our library
}
...

附加

当与多个开发人员合作或为了灵活性时,我在我的gradle.properties目录中使用.gradle(对于通常在homedir中找到的基于* nix的系统,不确定Windows在哪里找到它) 。 注意您可能需要创建目录并自己

在此文件中,您可以创建可在整个gradle文件中使用的常量(如果您愿意)。例如,我的内容包含以下内容:

theconstant=/Some/Path/MyProjects/Library/app

注意看似缺失的引号(不确定那是否真的需要) 现在我们可以替换

project (':lib').projectDir = new File('/Some/Path/MyProjects/Library/app')

project (':lib').projectDir = new File(theconstant)

现在您和您的团队可以定义此常量(可能因机器而异)并相应地更改路径。

优点

  • 不再对整个图书馆进行处理了!
  • 灵活性,您可以在项目窗口中编辑库
  • 处理相同项目的多个开发人员可以定义自己的路径
  • 图书馆在项目中被编译。编译时间(BuildConfig.DEBUG!)

缺点

  • 目前尚无

我没有找到正确测试的机会,但这似乎是目前最优雅的解决方案!我想听听你对此的看法。

答案 2 :(得分:2)

我正在做:

include '..:commons'
在settings.gradle中

  compile project(':..:commons')

在引用项目的build.gradle中

因此您可以将常用的lib放在项目之外

答案 3 :(得分:1)

你的build.gradle看起来应该是这样的

apply plugin: 'android-library'

repositories {
    mavenCentral()
} 
dependencies {
compile 'com.android.support:support-v4:18.0.0'
}

android {
compileSdkVersion 18
buildToolsVersion '18.1.1'

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        res.srcDirs = ['res']
    }
}
}

看第一行

答案 4 :(得分:0)

在Android Studio中创建新项目时,其中一个选项是“标记为库”。
或者,只需像任何其他项目一样创建项目。然后在其他地方使用它时,在库的gradle文件中确保将apply-plugin "android"更改为apply-plugin "android-library"并将其作为依赖项添加到正在使用它的应用程序中。有关如何将创建的项目添加为库的更多信息,请参阅here

答案 5 :(得分:0)

如果您希望将其用作想要使用它的应用中的库project structure,并在Dependencies下添加目标库,则只需将其创建为普通项目。