使用Android Studio的Android库项目
这个问题可能已经在某个地方回答了,但找不到合适的问题。
我想知道如何在Android Studio中创build通用实用程序库项目。 我想写一些常用的类和一些常用的方法在Android应用程序项目中使用。 也许就像Windows世界中的.dll一样 – 一组可以在多个用户之间共享的常用方法。
提前致谢。
最简单的方法来做到这一点:
-
在Android Studio中右键单击您打开的项目,然后select
New > Module
-
在左侧窗格中selectAndroid库,然后单击下一步。
-
input所有细节,取消创build活动,主题和所有如果不是必需的。
-
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即可。