使用Android Studio的Android库项目

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

我想知道如何在Android Studio中创build通用实用程序库项目。 我想写一些常用的类和一些常用的方法在Android应用程序项目中使用。 也许就像Windows世界中的.dll一样 – 一组可以在多个用户之间共享的常用方法。

提前致谢。

最简单的方法来做到这一点:

  1. 在Android Studio中右键单击您打开的项目,然后selectNew > Module

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

  3. input所有细节,取消创build活动,主题和所有如果不是必需的。

  4. select与您的项目相同的API级别,然后selectNext,Next,Next。

现在你会在你的项目中看到另一个目录, build.gradle for library会自动为你configuration。

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

 include ':mylibrary' 

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

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

 compile project(':mylibrary') 

如果要在其他项目中使用相同的库,则必须使用File Explore将库模块复制到该特定项目,并且必须手动configurationsettings.gradle和主模块的build.gradle

一个古老的问题,但即使现在似乎不是AndroidStudio图书馆propper解决scheme。 我一直在考虑进行一段时间的迁移步骤,这是我发现的。

我的'解决scheme'

比方说,我们有一个库(称为lib),其中包含共享代码和一个应用程序项目(称为应用程序),要使用该库的代码。

关键是在项目根目录的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

/一些/path/ MyProjects下/项目/应用/ build.gradle`

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

额外

当与多个开发人员一起工作或为了灵活性,我在我的.gradle目录中使用我的gradle.properties (对于通常在homedir中find的基于nix的系统,不知道Windows在哪里寻找它)。 请注意 ,您可能需要自己创build目录和文件。

在这个文件中,你可以创build,如果你喜欢,可以在你的gradle文件中使用的常量。 例如,我的包含如下内容:

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

注意看似缺less的引号(不知道这是否真的需要寿)现在我们可以取代

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

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

现在你和你的团队可以定义这个常数(每台机器可能不同)并相应地改变path。

利弊

  • 没有整个图书馆的应付了!
  • 灵活性,您可以在项目的窗口中编辑库
  • 在同一个项目上工作的多个开发人员可以定义自己的path
  • 库在项目的编译时被编译( BuildConfig.DEBUG !)

缺点

  • 目前还没有

我没有find机会正确地testing,但这似乎是目前最优雅的解决scheme! 我想听听你的想法。

我只是在做:

 include '..:commons' 

在settings.gradle

和:

  compile project(':..:commons') 

在引用项目的build.gradle中

所以你可以把你常用的lib放在项目之外

你的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'] } } } 

看第一行

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

如果您想在应用程序中使用它作为库打开的project structure ,并在Dependencies下添加预期的库,只需将其作为普通项目创build即可。